A。
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d\n",a+b);
}
}
B.你们过吧。。这个我出这玩的。。
#include <iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
int vis[200];//标记是否被访问过
char s[5];
int cnt;//出现过的颜色和数字数
int card[110];
int map[11000];
int sum; //不同的牌数
int ok[110];
int main()
{
int n;
scanf("%d",&n);
int ans = 100;
memset(vis,0,sizeof vis);
memset(map,0,sizeof map);
memset(ok,0,sizeof ok);
cnt = 0;
sum = 0;
for(int i = 0; i < n; i++)
{
scanf("%s",s);
if(!vis[s[0]])
{
vis[s[0]] = ++cnt; //编号1 - 10
}
if(!vis[s[1]])
{
vis[s[1]] = ++cnt;
}
int temp = vis[s[0]]*100+vis[s[1]]; //前两位表示颜色,后两位表示数字
if(!map[temp]) //这张牌之前没有出现过
{
map[temp] = 1;
card[++sum] = temp; //给牌编号
}
}
for(int i = 0; i < (1 << cnt); i++) //枚举所有提示的可能
{
int tt = 0; //提示的次数
for(int j = 0; j <= cnt; j++)
{
if((1 << j)&i)
{
tt++;
for(int k = 1; k <= sum; k++)
{
//如果颜色或者数字被提示到了,那么对应的ok值也就是提示值加上对应的标号
//如果是颜色要乘100,因为我用前两位表示颜色
if(card[k]/100 == j + 1) ok[k] += 100 * (j+ 1) ;
if(card[k]%100 == j + 1) ok[k] += j + 1 ;
}
}
}
//判断有没有两个数的ok值相同的
sort(ok+1,ok+sum+1);
int flag = 0;
for(int i = 2; i <= sum; i++)
{
if(ok[i] == ok[i - 1])
{
flag = 1;
break;
}
}
memset(ok,0,sizeof ok);
if( !flag && tt < ans) ans = tt;
}
printf("%d\n",ans);
return 0;
}
C.可出题。。
#include<cstdio>
#include<cstring>
int main()
{
int i,j,k;
int n,m;
int num[1010];
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
}
int sum=0;
for(i=1;i<=n;i++)
{
if(num[i]==1)
{
if(m)
{
m--;
}
else
{
sum++;
}
}
else if(num[i]==2)
{
if(k)
{
k--;
}
else if(m)
{
m--;
}
else
{
sum++;
}
}
}
printf("%d\n",sum);
}
return 0;
}
D.
#include<stdio.h>
#include<string.h>
int main()
{
int sum=0;
char a[1003],c;
int i=0,j=0,k=0;
while(scanf("%s",a)!=-1)
{
if(strcmp(a,"add")==0)
{
scanf(" %c",&c);
if(c=='a')
{
sum=7;
i=1,j=1,k=1;
}
else if(c=='r'&&i==0)
sum+=4,i=1;
else if(c=='w'&&j==0)
sum+=2,j=1;
else if(c=='x'&&k==0)sum+=1,k=1;
}
if(strcmp(a,"del")==0)
{
scanf(" %c",&c);
if(c=='a')
sum=0,i=0,j=0,k=0;
else if(c=='r'&&i==1)
sum-=4,i=0;
else if(c=='w'&&j==1)
sum-=2,j=0;
else if(c=='x'&&k==1)sum-=1,k=0;
}
if(strcmp(a,"show")==0)
{
printf("%d\n",sum);
}
//memset(a,0,sizeof(a));
getchar();
}
}
E.海伦公式求三角形面积
#include<cstdio> #include<cmath> int main() { int T; scanf("%d",&T); while(T--) { double x,y,z; scanf("%lf%lf%lf",&x,&y,&z); double p = (x+y+z)/2; if((x+y)>z&&(x+z)>y&&(y+z)>x)///判断三角形 printf("%.2f\n",sqrt(p*(p-x)*(p-y)*(p-z))); else printf("it's not a triangle!\n"); } }
F.#include<cstdio> #include<cmath> int main() { int right,left; while(scanf("%d%d",&right,&left)==2) { int Flag=0; for(int i=right;i<=left;i++) { int tmp=i; int x,y,z; x=tmp%10,tmp/=10,y=tmp%10,tmp/=10,z=tmp%10; if(x*x*x+y*y*y+z*z*z==i) { if(Flag)printf(" "); printf("%d",i); Flag=1; } } if(!Flag)printf("no"); printf("\n"); } }
G.
H.巴士博弈 找规律#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define N 10 int res; int n; int m; char maps[N][N]; int vis[N][N]; int judge(int x,int y) { for(int i=y-1; i>=0&&maps[x][i]=='.'; i--) if(vis[x][i]==1) return 0; for(int i=x-1; i>=0&&maps[i][y]=='.'; i--) { if(vis[i][y]==1) return 0; } for(int i=x-1,j=y-1; i>=0&&maps[i][j]=='.'&&j>=0; j--,i--) { if(vis[i][j]==1) return 0; } for(int i=x-1,j=y+1; i>=0&&maps[i][j]=='.'&&j<n; j++,i--) { if(vis[i][j]==1) return 0; } return 1; } void dfs(int pos,int tmp) { if(pos>=m) return ; if(res<tmp) { res=tmp; } pos++; dfs(pos,tmp); if(maps[pos/n][pos%n]=='.'&&judge(pos/n,pos%n)) { vis[pos/n][pos%n]=1; dfs(pos,tmp+1); vis[pos/n][pos%n]=0; } return ; } int main() { while(scanf("%d",&n),n) { res=0; memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) { scanf("%s",maps[i]); } m = n*n; if(maps[0][0]=='.') { vis[0][0]=1; dfs(0,1); vis[0][0]=0; }dfs(0,0); printf("%d\n",res); } }
#include<stdio.h> int main() { int n,m;//!巴士博弈 while(~scanf("%d%d",&n,&m)) { if(n%(m+1)==0) printf("LeyniV5!\n"); else printf("JiaozhuV5!\n"); } }