noip2014到2017初赛提高组看程序写结果、完善程序
练习编写小程序,实践是提高的关键。 #生活技巧# #学习技巧# #编程学习指南#
提高组和普及组的不少题目是一样的
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
相关内容
完善制度 规范程序 提升效能P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布————C++
#小程序云开发挑战赛#
python毕设百货超市在线购物小程序小程序端程序+论文
26 个改善心理健康的应用程序
写出下面程序的运行结果 。 #include main( ) { int a=1
看看人家程序员是怎么表白的 !(附教程~)
Pascal之父——Nicklaus Wirth——算法+数据结构=程序
编写一个简单加密程序!!!
程序自动化