P1028 [NOIP2001 普及组] 数的计算
代码
#include<bits/stdc++.h>//万能头文件
using namespace std;
int n;
int f[1001];//存每一位数的种类
int main(){
cin>>n;
for(int i=1;i<=n;i++){ //1-n的递推
for(int j=1;j<=i/2;j++){
f[i]+=f[j]; //每一位叠加,递推走起
}
f[i]++; //加上本身
}
cout<<f[n];//输出n的种类
return 0;
}
P1192 台阶问题
代码
#include<iostream>
#include<cstdio>
using namespace std;
const int mod=100003;
int n,k,dp[1000000];
int main()
{
cin>>n>>k;
dp[0]=dp[1]=1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=k;j++)
{
if(i>=j)
{
dp[i]=(dp[i]+dp[i-j])%mod;
}
}
}
cout<<dp[n]%mod;
return 0;
}
P1044 [NOIP2003 普及组] 栈
代码
#include<cstdio>
#define siz 20
using namespace std;
int n;
int c[siz*2][siz];
int main(){
scanf("%d",&n);
for(int i=1;i<=2*n;i++) c[i][1]=c[i][i]=1;
for(int i=3;i<=2*n;i++)
for(int j=2;j<i;j++)
c[i][j]=c[i-1][j]+c[i-1][j-1];
printf("%d",c[2*n][n]-c[2*n][n-1]);
return 0;
}
P1003 [NOIP2011 提高组] 铺地毯
#include<stdio.h>
#include<stdlib.h>
typedef struct Point{
int x;
int y;
} Px;
typedef struct map{
Px px[2];
int val;
} P;
int main()
{
int x,y,xd,yd;
int n;
scanf("%d",&n);
P *p=(P*)malloc(n*sizeof(P));
int i;
for(i=0;i<n;i++){
scanf("%d %d %d %d",&x,&y,&xd,&yd);
p[i].px[0].x=x;
p[i].px[0].y=y;
p[i].px[1].x=x+xd;
p[i].px[1].y=y+yd;
p[i].val=i+1;
}
int val=-1;
scanf("%d %d",&x,&y);
for(i=0;i<n;i++){
if((x>=p[i].px[0].x&&x<=p[i].px[1].x)&&(y>=p[i].px[0].y&&y<=p[i].px[1].y)){
if(val<p[i].val){
val=p[i].val;
}
}
}
printf("%d",val);
return 0;
}