1874: 蛤玮学计网
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 854 Solved: 120
Submit Status Web Board
Description
Input
Output
若合法,输出"Yes",否则输出"No"(不包含引号)。
Sample Input
Sample Output
HINT
我们认为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;
}
1875: 蛤玮的财宝
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 239 Solved: 34
Submit Status Web Board
Description
Input
Output
Sample Input
Sample Output
#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;
}
1878: 蛤玮准备礼物
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 680 Solved: 94
Submit Status Web Board
Description
Input
Output
Sample Input
Sample Output
1878: 蛤玮准备礼物
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 680 Solved: 94
Submit Status Web Board
Description
Input
Output
Sample Input
Sample Output
#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;
}
1879: 蛤玮买好了礼物
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 399 Solved: 150
Submit Status Web Board
Description
蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!
为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
Input
Output
每组数据输出一行,表示最终的铅笔个数.
Sample Input
Sample Output
HINT
对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。
1879: 蛤玮买好了礼物
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 399 Solved: 150
Submit Status Web Board
Description
蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!
为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".
还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?
Input
Output
每组数据输出一行,表示最终的铅笔个数.
Sample Input
Sample Output
HINT
对于第一个输入,最终掰成了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;
}
1881: 蛤玮的机房
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 287 Solved: 101
Submit Status Web Board
Description
Input
输入第一行为一个整数T(1<=T<=10),代表数据组数。对于每组数据,第一行为两个整数n(1<=n<=100),m(1<=m<=n*n),接下来m行每行两个整数u,v(1<=u,v<=n),表示主机u,v之间已建立线路。
Output
对于每组数据,输出一个整数,表示还需建设的线路数。
Sample Input
Sample Output
#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;
}
1882: 蛤玮的魔法
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 225 Solved: 61
Submit Status Web Board
Description
Input
Output
每组数据输出一个整数,表示蛤玮操作的次数.
Sample Input
Sample Output
1882: 蛤玮的魔法
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 225 Solved: 61
Submit Status Web Board
Description
Input
Output
每组数据输出一个整数,表示蛤玮操作的次数.
Sample Input
Sample Output
#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;
}
1883: 蛤玮当上主席
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 249 Solved: 181
Submit Status Web Board
Description
Input
Output
Sample Input
Sample Output
1883: 蛤玮当上主席
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 249 Solved: 181
Submit Status Web Board
Description
Input
Output
Sample Input
Sample Output
#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;
}