【题目】
1225: Give me the answer
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 176 Solved: 66
[ Submit][ Status][ Web Board]
Description
Farmer John commanded his cows to search for different sets of numbers that sum to a given number.
The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that
sum to 7:
1) 1+1+1+1+1+1+1
2) 1+1+1+1+1+2
3) 1+1+1+2+2
4) 1+1+1+4
5) 1+2+2+2
6) 1+2+4
Help FJ count all possible representations for a given integer N (1 <= N <= 1 ,000,000)
Input
The first line of the input contains the number of test cases in the file. And t he first line of each case
contains one integer numbers n
Output
For each test case, output a line with the ans % 1000000000.
Sample Input
Sample Output
【题解】
类似跳台阶
我们用f[i]记录分i只牛的不同种数,题目要求是只能分为2的n次幂,我们发现当i为偶数时,f[i]=f[i+1].
推导如下:
如果还是不懂,见变态跳台阶
【代码】
#include<bits/stdc++.h> using namespace std; const int mod=1000000000; int f[1000005]; void init() { int i,sum; f[0]=1,f[1]=1; for(i=2;i<=1000000;i++) if(i%2==0) f[i]=(f[i-2]+f[i/2])%mod; else f[i]=f[i-1]; } int main() { int t,n; init(); scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",f[n]); } return 0; }
【题目】
1265: 数三角形
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 562 Solved: 315
[ Submit][ Status][ Web Board]
Description
给定一个等边三角形,它的每条边被分成n等分,分别用平行于三边的直线过各个n等分点截这个三角形,如图所示:
请问,图中总共有多少个三角形?
Input
输入包含多组测试数据,直至EOF。
每组测试数据包含一个正整数n,表示三角形三边被分为了n等份(n<500)。
Output
输出三角形的个数。
Sample Input
Sample Output
【...】
这是一道数学题
【代码】
#include<bits/stdc++.h> using namespace std; int main() { int n; while(~scanf("%d",&n)) { if(n%2) printf("%d\n",(n+1)*(2*n*n+3*n-1)/8); else printf("%d\n",n*(n+2)*(2*n+1)/8); } return 0; }