noip2014到2017初赛提高组看程序写结果、完善程序

发布时间:2024-12-03 19:28

练习编写小程序,实践是提高的关键。 #生活技巧# #学习技巧# #编程学习指南#

提高组和普及组的不少题目是一样的

noip2017

1.带循环的递归调用

#include <iostream>

using namespace std;

int g(int m, int n, int x) {

int ans = 0;

int i;

if (n == 1) return 1;

for (i = x; i <= m / n; i++)

ans += g(m - i, n - 1, i);

return ans;

}

int main() {

int t, m, n;

cin >> m >> n;

cout << g(m, n, 0) << endl;

return 0;

}

输入:8 4

输出:_________

递归调用的时候要能够比较清晰的把下面的式子写出来

g(8,4,0)=g(8,3,0)+g(7,3,1)+g(6,3,2)=10+4+1=15

g(8,3,0)=g(8,2,0)+g(7,2,1)+g(6,2,2)=5+3+2=10

g(8,2,0)=g(8,1,0)+g(7,1,1)+g(6,1,2)+g(5,1,3)+g(4,1,4)=5

g(7,2,1)=g(6,1,1)+g(5,1,2)+g(4,1,3)=3

g(6,2,2)=g(4,1,2)+g(3,1,3)=2 

g(7,3,1)=g(6,2,1)+g(5,2,2)=3+1=4

g(6,2,1)=g(5,1,1)+g(4,1,2)+g(3,1,3)=3

g(5,2,2)=g(3,1,2)=1 

g(6,3,2)=g(4,2,2)=g(2,1,2)=1

2. 求幻方

17 24 1 8 15

按照它给的规则写:第一行中间是1,下一个数写在上一个数的右上面那个格(第一行的上一行是最后一行,最后一列的右面是第一列),如果右上面那个格已经填过就填它下面那个(能填右上填右上,填不了右上就填右面那个)

3. 求逆序对(归并排序)

4. 模拟矩阵内45度反弹,到哪个角就是哪个

#include <iostream>

using namespace std;

int main() {

int n, m;

cin >> n >> m;

int x = 1;

int y = 1; int dx = 1; int dy = 1; int cnt = 0;

while (cnt != 2) {

cnt = 0;

x= x + dx;

y= y + dy;

if (x == 1 || x == n) {

++cnt;

dx = -dx;

}

if (y == 1 || y == m) {

++cnt;

dy = -dy;

}

}

cout << x << " " << y << endl;

return 0;

}

输入 1:4 3

输出 1:_________(2 分)

输入 2:2017 1014

输出 2:_________(3 分)

输入 3:987 321

输出 3:_________(3 分)

网址:noip2014到2017初赛提高组看程序写结果、完善程序 https://www.yuejiaxmz.com/news/view/363805

上一篇: 链表删除
下一篇: 1+2=3童装

相关内容

完善制度 规范程序 提升效能
P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布————C++
#小程序云开发挑战赛#
python毕设百货超市在线购物小程序小程序端程序+论文
26 个改善心理健康的应用程序
写出下面程序的运行结果 。 #include main( ) { int a=1
看看人家程序员是怎么表白的 !(附教程~)
Pascal之父——Nicklaus Wirth——算法+数据结构=程序
编写一个简单加密程序!!!
程序自动化

随便看看