hdu6330
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
char s[100][100];
scanf("%d",&n);
while(n--)
{
int a,b,c;
int i,j,k;
scanf("%d%d%d",&a,&b,&c);
memset(s,'.',sizeof(s));
for(i=0;i<2*b;i++)
{
for(j=2*b-i;j<2*(a+b)+1-i;j++)
{
if(i%2==0)
{
if(j%2==0)
s[i][j]='+';
else
s[i][j]='-';
}
else
{
if(j%2==1)
s[i][j]='/';
}
}
}
for(i=2*b;i<2*(b+c)+1;i++)
{
for(j=0;j<2*a+1;j++)
{
if(i%2==0)
{
if(j%2==0)
s[i][j]='+';
else
s[i][j]='-';
}
else
{
if(j%2==0)
s[i][j]='|';
}
}
}
for(i=2*(a+b);i>=2*a+1;i--)
{
for(j=2*(a+b)-i;j<2*(b+c)-2*b+(2*a+2*b-i)+1;j++)
{
if(i%2==0)
{
if(j%2==0)
s[j][i]='+';
else
s[j][i]='|';
}
else
{
if(j%2==1)
s[j][i]='/';
}
}
}
for(i=0;i<2*(b+c)+1;i++)
{
for(j=0;j<2*(a+b)+1;j++)
{
printf("%c",s[i][j]);
}
printf("\n");
}
}
return 0;
}
二维数组,分别从正面、上面和侧面来输入
还有memset的用法
hdu6322
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int x;
scanf("%d",&x);
if(x==1)
printf("5\n");
else
printf("%d\n",x+5);
}
return 0;
}
困在题意好久,先要理解互质的概念,就是公因子只有1,除素数外都是合数
1既不是素数也不是合数
2是最小的素数
此题想要找的就是第k小的
f(n质数)=(比n小并且与n互质的数的个数m)m若是合数,则为第k个
给出k
求出n
f(2)=1 1
f(3)=1 2 2
f(4)=1 3 2
f(5)=1 2 3 4 4(第一个合数)
f(6)=1 5 2
f(7)=1 2 3 4 5 6 6(第二个合数)
hdu6324
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
{
while(n--)
{
int x;
scanf("%d",&x);
int sum=0,w;
scanf("%d",&w);
sum=w;
for(int i=1;i<x;i++)
{
scanf("%d",&w);
sum=sum^w;
}
int m,n;
for(int i=0;i<x-1;i++)
{
scanf("%d%d",&m,&n);
}
if(sum==0)
printf("D\n");
else
printf("Q\n");
}
}
return 0;
}
其实是一道陷阱题
Q先拿
如若总分最后不为0
Q一定赢
因为奇数