“玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛

1874: 蛤玮学计网

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 854  Solved: 120

SubmitStatusWeb
Board

Description

蛤玮最近学习了关于ip的知识,于是他迫不及待的想把新知识传授给她的妹子.蛤玮的妹子随便写下了一个字符串,蛤玮现在要告诉她这个字符串是不是一个合法的ip地址.

为简单考虑,仅考虑ipv4的情况,即合法ip为形同"a1.a2.a3.a4",且0<=ai<=255。

Input

第一行为一个整数T(1<=T<=20),代表数据组数。接下来T行每行一个字符串,其中不包含空格,Tab以及回车,长度不超过50。

Output

若合法,输出"Yes",否则输出"No"(不包含引号)。

Sample Input

2

10.105.240.51

f.a.t.e

Sample Output

Yes

No

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 MB

Submit: 239  Solved: 34

SubmitStatusWeb
Board

Description

蛤玮和他的妹子出海游玩,不小心遭遇了海难,他们醒来之后发现自己到了一座金银岛.岛主非常好心的告诉他们在岛的另一边有船可以送他们回家.

这座岛可以看成n*m的矩阵,蛤玮他们在位置(1,1),而船在位置(n,m).蛤玮发现金银岛遍地都是金子,每个格子里有价值a[i,j]的金子,他和妹子打算在回去的路上带一些走.如果他们路过了位置(i,j),就可以假装系鞋带捡走地上的金子.为了不引起怀疑,他们在走的时候只能往接近码头的方向走,即如果蛤玮现在在(i,j),他只能移动到(i+1,j)或者(i,j+1).为了能拿走更多的金子,蛤玮和妹子决定装作互相不认识,这样他们就可以分开走,从而拿到更多的金子.

蛤玮和他妹子想知道他们最多能拿走多少金子.

注意如果蛤玮和他妹子经过了相同的地方,只能得到一次金子,因为地上的捡完就没有了.

Input

T(1<=T<=10),表示数据组数.

每组数据第一行n,m(1<=n,m<=100),接下来n行,每行m个数,第i行第j列的值a[i,j](1<=a[i,j]<=1000)表示位置(i,j)的金子的价值.

Output

每组数据输出一行,蛤玮和他妹子能拿到的金子总价的最大值.

Sample Input

1

2 2

2 1

1 2

Sample Output

6

#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 MB

Submit: 680  Solved: 94

SubmitStatusWeb
Board

Description

蛤玮的妹子要过生日了,经过千挑万选,蛤玮决定给妹子买一盒水彩铅笔,然而卖多少个才合适呢.机智的蛤玮决定数一数今天是妹子出生的第多少天,然后就买那么多根铅笔.

给出蛤玮妹子的生日和今天的日期,求蛤玮一共需要买多少.

注意:生日当天算第0天.

Input

T(1<=T<=1000),表示数据组数.

每组数据一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤玮所在时空的当前天的年月日.

(1900<=y<=1000000, 1<=m<=12, 1<=d<=当月应有天数).输入保证当前天在妹子生日之后.

Output

每组数据输出一行,蛤玮要买多少根铅笔.

Sample Input

21995 10 24 1995 10 251996 1 9 1996 3 7

Sample Output

158

1878: 蛤玮准备礼物

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 680  Solved: 94

SubmitStatusWeb
Board

Description

蛤玮的妹子要过生日了,经过千挑万选,蛤玮决定给妹子买一盒水彩铅笔,然而卖多少个才合适呢.机智的蛤玮决定数一数今天是妹子出生的第多少天,然后就买那么多根铅笔.

给出蛤玮妹子的生日和今天的日期,求蛤玮一共需要买多少.

注意:生日当天算第0天.

Input

T(1<=T<=1000),表示数据组数.

每组数据一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤玮所在时空的当前天的年月日.

(1900<=y<=1000000, 1<=m<=12, 1<=d<=当月应有天数).输入保证当前天在妹子生日之后.

Output

每组数据输出一行,蛤玮要买多少根铅笔.

Sample Input

2

1995 10 24 1995 10 25

1996 1 9 1996 3 7

Sample Output

1

58

#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 MB

Submit: 399  Solved: 150

SubmitStatusWeb
Board

Description

蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!

为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".

还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?

Input

T(1<=T<=100),表示数据组数.

每组数据第一行一个整数n(1<=n<=100),表示蛤玮买来的铅笔个数,接下来一行n个整数,表示n个铅笔的长度.保证长度都为正整数且小于1e7.

Output

每组数据输出一行,表示最终的铅笔个数.

Sample Input

222 334 6 14

Sample Output

512

HINT

对于第一个输入,最终掰成了5个长度为1的铅笔,第二个输入,最终掰成了12个长度为2的铅笔。

1879: 蛤玮买好了礼物

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 399  Solved: 150

SubmitStatusWeb
Board

Description

蛤玮的妹子过生日,蛤玮把千辛万苦挑选出来的礼物送到了妹子面前,然而妹子非常生气,因为妹子要的是化妆套装,而蛤玮买了一套水彩铅笔,更可气的是这些铅笔像是二手的,因为他们不是一样长!

为了惩罚蛤玮,妹子说"我有强迫症,受不了这些铅笔不一样长,你快去搞定它!不然就买化妆套给我!".

还好,这些铅笔的长度都是整数,蛤玮灵机一动,可以把些铅笔掰断使得它们可以一样长,当然要保证铅笔尽可能的长。 那么当这些铅笔最终一样长的时候,一共有多少支铅笔?

Input

T(1<=T<=100),表示数据组数.

每组数据第一行一个整数n(1<=n<=100),表示蛤玮买来的铅笔个数,接下来一行n个整数,表示n个铅笔的长度.保证长度都为正整数且小于1e7.

Output

每组数据输出一行,表示最终的铅笔个数.

Sample Input

2

2

2 3

3

4 6 14

Sample Output

5

12

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 MB

Submit: 287  Solved: 101

SubmitStatusWeb
Board

Description

蛤玮成为了实验室主任,现在学校要求他建好一个机房里的通信网络.这个网络中有n台主机,现在已知建设好了m条线路,可以让一些主机直接或间接通信,为了使这n台主机互相之间都可以直接或间接通信,请问蛤玮最少还需建设多少条线路。

间接通信指:若A,B可以直接通信,B,C可以直接通信,则A,C可以间接通信,同理若C,D可以直接通信,A,D也可以间接通信。

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

1

3 3

1 1

2 1

1 2

Sample Output

1

#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 MB

Submit: 225  Solved: 61

SubmitStatusWeb
Board

Description

为了成为魔法少女,蛤玮正在学习画魔法阵,他首先画了一个正n边形,查阅魔法书后蛤玮发现书上要求魔法阵的面积不能超过L,他很头疼,因为用尺规作这个正n边形花了他好大经历,他不想重新画一边,于是他想了个好主意,把每条边的中点依次连起来,就能得到一个缩小的正n边行.现在蛤玮想知道他需要按着个方法缩小多少次才能合乎魔法书上的要求.

Input

T(1<=T<=100),表示数据组数.

每组数据三个整数n(3<=n<=10),a(1<=a<=100),L(1<=L<=1000),其中a表示蛤玮画的正n边行的边长,n,L如题中描述.

数据保证[L-1e-5,L+1e-5]内答案唯一.

Output

每组数据输出一个整数,表示蛤玮操作的次数.

Sample Input

14 2 3

Sample Output

1

1882: 蛤玮的魔法

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 225  Solved: 61

SubmitStatusWeb
Board

Description

为了成为魔法少女,蛤玮正在学习画魔法阵,他首先画了一个正n边形,查阅魔法书后蛤玮发现书上要求魔法阵的面积不能超过L,他很头疼,因为用尺规作这个正n边形花了他好大经历,他不想重新画一边,于是他想了个好主意,把每条边的中点依次连起来,就能得到一个缩小的正n边行.现在蛤玮想知道他需要按着个方法缩小多少次才能合乎魔法书上的要求.

Input

T(1<=T<=100),表示数据组数.

每组数据三个整数n(3<=n<=10),a(1<=a<=100),L(1<=L<=1000),其中a表示蛤玮画的正n边行的边长,n,L如题中描述.

数据保证[L-1e-5,L+1e-5]内答案唯一.

Output

每组数据输出一个整数,表示蛤玮操作的次数.

Sample Input

1

4 2 3

Sample Output

1

#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 MB

Submit: 249  Solved: 181

SubmitStatusWeb
Board

Description

蛤玮一直很想当主席,掌管自己的国家.对于一个富强的国家,拥有属于自己的货币是非常重要的.我们假设蛤玮的国家的货币在流通中只会以自然数的形式出现,即不会出现1.1蛤这样的情况.蛤玮需要发布一定面额的纸币,使得任意的钱数都可以用一定的纸币组成.蛤玮自己想了几种方案,然而他并不懂经济,不知道这些方案能不能满足要求.

Input

T(1<=T<=100),表示数据组数.

每组数据第一行n(1<=n<=10),表示发行几种货币,接下来一行包含n个正整数ai(1<=ai<=100),保证给出的n个数从左至右严格递增.

Output

如果蛤玮的方案能够表示任意的钱数,则输出"Yes",否则输出"No".

Sample Input

131 2 3

Sample Output

Yes

1883: 蛤玮当上主席

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 249  Solved: 181

SubmitStatusWeb
Board

Description

蛤玮一直很想当主席,掌管自己的国家.对于一个富强的国家,拥有属于自己的货币是非常重要的.我们假设蛤玮的国家的货币在流通中只会以自然数的形式出现,即不会出现1.1蛤这样的情况.蛤玮需要发布一定面额的纸币,使得任意的钱数都可以用一定的纸币组成.蛤玮自己想了几种方案,然而他并不懂经济,不知道这些方案能不能满足要求.

Input

T(1<=T<=100),表示数据组数.

每组数据第一行n(1<=n<=10),表示发行几种货币,接下来一行包含n个正整数ai(1<=ai<=100),保证给出的n个数从左至右严格递增.

Output

如果蛤玮的方案能够表示任意的钱数,则输出"Yes",否则输出"No".

Sample Input

1

3

1 2 3

Sample Output

Yes

#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;
}
时间: 2024-10-10 10:53:34

“玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛的相关文章

nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)

题目1238 题目信息 运行结果 本题排行 讨论区 最少换乘 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. 年轻人旅游不怕辛苦,不怕劳累,只要费用低就行.但Dr. Kong年过半百,他希望乘坐BUS从住的宾馆到想去游览的景点,期间尽可量地少换乘车. Dr. Kon买了一张旅游地图.他发现,市政部门为了方便游客,在各个旅游景点及宾馆,饭店等地方都设置了一些公

nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)

题目1237 题目信息 运行结果 本题排行 讨论区 最大岛屿 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王.  这是一个由海洋.岛屿和海盗组成的危险世界.面对危险重重的海洋与诡谲的对手,如何凭借智慧与运气,建立起一个强大的海盗帝国. 杰克船长手头有一张整个海域的海图,上面密密麻麻分布着各个海屿的位置及面

nyoj 1239 引水工程 (河南省第八届acm程序设计大赛)

题目1239 题目信息 运行结果 本题排行 讨论区 引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程,事关中华民族长远发展."南水北调工程",旨在缓解中国华北和西北地区水资源短缺的国家战略性工程.就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区.我国南涝北旱,南水北调工程通过跨流域的水资源合理配置,促进南北方经济.社会与人口.资

nyoj 1239 引水project (河南省第八届acm程序设计大赛)

题目1239 pid=1239" style="color:rgb(55,119,188)">题目信息 pid=1239" style="color:rgb(55,119,188)">执行结果 pid=1239" style="color:rgb(55,119,188)">本题排行 讨论区 引水project 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描写叙述 南水北调

山东省第八届ACM程序设计大赛总结

背景 第一次参加省赛的菜鸡选手 学校比较近,我们第一天热身赛和正式比赛都是打车直接回学校,并不知道传说中的宾馆房间是什么样子.不过宾馆的火爆麻辣土豆丝盒饭倒是领教了./摊手 第一天热身赛题没怎么看,一直敲模板,最后想要个气球A了两个题,结果被告知气球没了,僵硬,你们明明黑板上有贴的嘛 /阴险,A题测试案例有问题,还跟志愿者开玩笑,希望你们明天也出个坑坑一波大佬们(我这乌鸦嘴...)(宣讲会两位女士的尬聊就不提了.....) 正赛简直了,A题被山建大佬带歪了榜,F题阅读理解,第一次交考虑了0 0

河南省第八届ACM程序设计大赛

A:挑战密室 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <stack> #include <map> #include <vector> #include <queue> using namespace std; typedef lon

河南省第八届ACM程序设计大赛总结

简单的对这次省赛做个总结:总体来说这个比赛过程中做的还算比较顺利,虽然中间多多少少遇到一些坑,正式比赛开始后,我们就开始找水题,当然了我首先把英文题目翻译了一遍,发现了一道水题,这道题目其实就是判断点在二维平面坐标系中的象限位置,然后果断交给了zy去做,此时wx已经A了一道题了,至于什么情况我并不知情,然后又发现了一道较水的英文题目,是遍历连续数组子串求最大平均值的问题,我们商量好思路后,然后又果断交给了zy去做,之后交了一发,果断Wrong了,然后又看了看题目要求,好吧,输出的最后一句单词没有

河南省第七届ACM程序设计大赛赛后总结

我们学校ACM集训开始于4月5号(清明节),5月25日在郑州解放军信息工程大学举办,集训耗时50天,但是感觉效果还行,但是也不是太好:我们也已经尽力了,虽然说只拿了个银牌,每份收获的背后,都会有辛勤的汗水,毕竟我们也努力了: 下面说说比赛中的问题:觉得吧,虽说模拟赛参加了很多,但是到了正式的比赛的时候,还是出现了紧张的情况,九点开始比赛,我们AC第一道题的时间是在十点半左右,题目不难而且曾经也做过啊,但是就是调试不好,越调试不好,心里就越急啊:刚开始看题的时间,我们都看了第一道题,意思也都明白,

“玲珑杯”第七届郑州轻工业学院ACM程序设计大赛 ------- D:社交网络

题目链接: http://acm.zzuli.edu.cn/problem.php?cid=1099&pid=3 题目大意: 国语题目,题意显而易见, 解题思路: 只需要对每一个节点进行假设,每一个节点可能是交际花的数目总数乘上概率就是这个节点是交际花的期望,把所有期望加和在一起输出就可以了, 忏悔篇: 比赛的时候,我们看到是求期望的,就读了读题意,然后放下了,然后放下了(这是多么错误的决定)..............,然后我们就与第一名擦肩而过了,多么痛的领悟,因为平时接触的求概率的题目较少