标签:
若合法,输出"Yes",否则输出"No"(不包含引号)。
我们认为010.105.240.051是合法的。
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<iostream> using namespace std; char s[110]; int main() { int t,i,k,l; scanf("%d",&t); while(t--) { scanf("%s",s); l=strlen(s); int flag=0,cnt=0,d=0,n;//cnt表示数的个数,d表示点的个数 for(i=0;i<l;) { if(s[i]=='.') { d++;i++; continue; } if(s[i]<'0'||s[i]>'9') { flag=1; break; } else { n=0;k=0; while(isdigit(s[i])) n=n*10+(s[i++]-'0'),k++; cnt++; if(k>3||n>255)//如果某个数的位数大于3或者数的值大于255,则不符合题意 { flag=1; break; } } } if(cnt!=4||flag||d>3)//如果数的个数不为4,出现字母,或者点的个数大于3,则不符合要求 printf("No\n"); else printf("Yes\n"); } return 0; }
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int v[110][110]; int f[210][110][110]; int main() { int t,n,m,T,c; int i,j,k; scanf("%d",&T); while(T--) { memset(v,0,sizeof(v)); memset(f,0,sizeof(f)); scanf("%d%d",&m,&n); c=m+n-2; for(i=1;i<=m;i++) for(j=1;j<=n;j++) scanf("%d",&v[i][j]); for(k=1;k<c;k++) { t=k+2>m?m:k+2; for(i=1;i<=t;i++) for(j=i+1;j<=t;j++) if(i!=j) f[k][i][j]=max(max(f[k-1][i-1][j],f[k-1][i][j-1]),max(f[k-1][i][j],f[k-1][i-1][j-1]))+v[i][k-i+2]+v[j][k-j+2]; } f[c][m][m]=max(f[c-1][m-1][m],f[c-1][m][m-1]); f[c][m][m]+=v[1][1]+v[m][n]; printf("%d\n",f[c][m][m]); } return 0; }
#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int sum[1000010]; int init() { for(int i=1900;i<=1000000;i++) { if(i%4==0&&i%100!=0||i%400==0) sum[i]=sum[i-1]+366; else sum[i]+=sum[i-1]+365; } } int main() { init(); int t,y,m,d,y1,m1,d1,k,i; scanf("%d",&t); while(t--) { scanf("%d%d%d%d%d%d",&y,&m,&d,&y1,&m1,&d1); int s=0; for(i=0;i<m;i++) { if(y%4==0&&y%100!=0||y%400==0) s+=b[i]; else s+=a[i]; } s+=d; if(y%4==0&&y%100!=0||y%400==0) k=366-s; else k=365-s; k+=sum[y1]-sum[y]; for(i=0;i<m1;i++) { if(y1%4==0&&y1%100!=0||y1%400==0) k+=b[i]; else k+=a[i]; } k+=d1; if(y1%4==0&&y1%100!=0||y1%400==0) k-=366; else k-=365; printf("%d\n",k); } return 0; }
蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!
为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
每组数据输出一行,表示最终的铅笔个数.
对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。
蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!
为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
每组数据输出一行,表示最终的铅笔个数.
对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int a[110]; int gcd(int a,int b) { return b?gcd(b,a%b):a; } int main() { int t,n,i; scanf("%d",&t); while(t--) { int sum=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); sum+=a[i]; } sort(a,a+n); int k=a[0]; for(i=1;i<n;i++) k=min(k,gcd(k,a[i])); sum/=k; printf("%d\n",sum); } return 0; }
输入第一行为一个整数T(1<=T<=10),代表数据组数。对于每组数据,第一行为两个整数n(1<=n<=100),m(1<=m<=n*n),接下来m行每行两个整数u,v(1<=u,v<=n),表示主机u,v之间已建立线路。
对于每组数据,输出一个整数,表示还需建设的线路数。
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; int a[110]; int find(int x) { return x==a[x]?x:a[x]=find(a[x]); } int judge(int x,int y) { int fx=find(x); int fy=find(y); if(fx!=fy) a[fy]=fx; } int main() { int t,n,m; int i,j,k,u,v; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) a[i]=i; for(i=1;i<=m;i++) { scanf("%d%d",&u,&v); judge(u,v); } int cnt=0; for(i=1;i<=n;i++) if(a[i]==i) cnt++; printf("%d\n",cnt-1); } return 0; }
每组数据输出一个整数,表示蛤玮操作的次数.
每组数据输出一个整数,表示蛤玮操作的次数.
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #define PI acos(-1.0) using namespace std; int main() { int t; double n,a,l; double s,s1,a1,l1; double x1,x2,x3,x4; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf",&n,&a,&l); x1=(PI/n)*2; x2=(PI-x1)/2; x3=2*x2; x4=(PI-x3)/2; l1=a*sin(x2)/sin(x1); s=0.5*sin(x1)*l1*l1*n; int cnt=0; while(s-l>1e-6) { a1=a/2; s1=0.5*sin(x3)*a1*a1; a=a1*sin(x3)/sin(x4); s-=n*s1; cnt++; } printf("%d\n",cnt); } return 0; }
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int t,n,i,j; scanf("%d",&t); while(t--) { scanf("%d",&n); int flag=0,a; for(i=0;i<n;i++) { scanf("%d",&a); if(a==1) flag=1; } if(flag) printf("Yes\n"); else printf("No\n"); } return 0; }
“玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛
标签:
原文地址:http://blog.csdn.net/yanghui07216/article/details/51191307