2021-01-18

@[toc]灵动ICPC冬令营基础-1

A - Specialized Four-Digit Numbers

#include<stdio.h>
int Calc(int base , int n){
	int m=0;
	while(n){
	m = m + n % base;
	n /= base;
	}
	return m;
}
int main(){
	int i;
	for(i=1000;i<10000;i++){
		if(Calc(10,i)==Calc(16,i)&&Calc(10,i)==Calc(12,i)) printf("%d\n",i);
		}
	return 0;
} 

直接把n进制每一位的值计算到和里

B - Pig-Latin

#include<stdio.h>
char s[1000005];
int isab(char c){
	if(c>='a'&&c<='z') return 1;
	if(c>='A'&&c<='Z') return 1;
	return 0;
}
int vowel(char c){
	if(c=='a'||c=='A') return 1;
	if(c=='e'||c=='E') return 1;
	if(c=='i'||c=='I') return 1;
	if(c=='o'||c=='O') return 1;
	if(c=='u'||c=='U') return 1;
	return 0;
}
int main(){
	int i,j,k,count=0;
	while(gets(s)){
		i=0,j=0;
		while(s[i]){
			if(!isab(s[i])){
				printf("%c",s[i++]);
				j=i;
			}
			else if(isab(s[j])){
				j++;
			}
			else{
				if(vowel(s[i])) for(k=i;k<j;k++) printf("%c",s[k]);
		        else {
			        for(k=i+1;k<j;k++) printf("%c",s[k]);
			        printf("%c",s[i]);
			    }
			    printf("ay");
		        i=j;
			}
		}
	}
	return 0;
}

按要求,最后在单词后输出ay

C - Tic Tac Toe

#include <stdio.h>
char a[4][4];
int i, j;
int win(char c) {
	for(i=0;i<3;i++) {
		for(j=0;j<3&&a[i][j]==c;j++)
			if(j==2) return 1;
		for(j=0;j<3&&a[j][i]==c;j++)
			if(j==2) return 1;
	}
	for(i=0;i<3&&a[i][i]==c;i++)
		if(i==2) return 1;
	for(i=0;i<3&&a[i][2-i]==c;i++)
		if(i==2) return 1;
	return 0;
}
int main() {
	int n, o, x, t;
	scanf("%d",&n);
	while(n--){
		t=1;
		x=o=0;
		for(i=0;i<3;i++){
			scanf("%s",a[i]);
		}
		for(i=0;i<3;i++){
			for(j=0;j<3;j++){
				if(a[i][j]=='X') ++x;
				else if(a[i][j]=='O') ++o;
			}
		}
		if(x<o) t=0;	
		if(x>=(o+2)) t=0;
		if(win('X')&&win('O')) t=0;
		if(win('O')&&o!=x) t=0;
		if(win('X')&&o==x) t=0;
		if(t==1) printf("yes\n");
		else printf("no\n");
	}
	return 0;
}

判断不符合条件的

D - Factorial! You Must be Kidding!!!

#include<stdio.h>
const int N = 13;
long long F[N+1];
void init() {
	F[0]=1;
	int i;
	for(i=1;i<=N;i++){
		F[i]=i*F[i-1];
	}
}
int main(){
	int n;
	init();
	while(~scanf("%d",&n)){
		if(n>13||(n<0&&(-n)%2==1)) printf("Overflow!\n");
		else if(F[n]<10000||(n<0&&(-n)%2==0)) printf("Underflow!\n");
		else printf("%lld\n",F[n]);
	}
	return 0;
}

E - Function Run Fun

#include<stdio.h>
#include<string.h>
#define N 20
int f[N+1][N+1][N+1];
int w(int a,int b, int c){
	if(a<=0||b<=0||c<=0) return 1;
	else if(a>N||b>N||c>N) return w(N,N,N);
	else if(f[a][b][c]) return f[a][b][c];
	else if(a<b&&b<c) return f[a][b][c] =w(a,b,c-1)+ w(a,b-1,c-1)- w(a,b-1,c);
	else return f[a][b][c] = w(a-1,b,c)+w(a-1,b-1,c) + w(a-1,b,c-1)- w(a-1,b-1,c-1);
}
int main(){
	int a,b,c;
	while(scanf("%d %d %d",&a,&b,&c)!=EOF){
		if(a==-1&&b==-1&&c==-1) return 0;
		printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
	}
	return 0;
}

因为算的很多,所以要一个数组来记忆递归结果

F - Simple Addition

#include<stdio.h>
long long sum;
long long F(long long n){
	if(n%10>0) return n%10;
	else if(n==0) return 0;
	else return F(n/10);
}
void E(long long p,long long q){
	int i;
	if((q-p)<9){
		for(i=p;i<=q;i++){
			sum+=i;
		}
		printf("%lld\n",sum);
		return;
	}
	while(p%10){
		sum+=F(p);
		p++;
	}
	while(q%10){
		sum+=F(q);
		q--;
	}
	sum=sum+(q/10-p/10)*45;
	E(p/10,q/10);
}
int main (){
	long long p,q;
	while(scanf("%lld%lld",&p,&q)!=EOF){
		if(p<0&&q<0) return 0;
		E(p,q);
		sum=0;
	}
	return 0;
}

分类分别求个位数 用递归把个位是0的数的十位变成个位

G - A Contesting Decision

#include<stdio.h>
#include<string.h>
#define maxn 30
#define maxs 1000
struct team_info{
	char Name[maxn];
	int p1Sub;
	int p1Time;
	int p2Sub;
	int p2Time;
	int p3Sub;
	int p3Time;
	int p4Sub;
	int p4Time;
	int num;
	int time;
}team[maxs];
int main (){
	int n,i;
	char wname[20];
	int wsol , wpt ;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s%d%d%d%d%d%d%d%d",team[i].Name,&team[i].p1Sub,&team[i].p1Time,&team[i].p2Sub,&team[i].p2Time,&team[i].p3Sub,&team[i].p3Time,&team[i].p4Sub,&team[i].p4Time);
		if(team[i].p1Time!=0) team[i].num=team[i].num+1,team[i].time=team[i].time+team[i].p1Time+(team[i].p1Sub-1)*20;
		if(team[i].p2Time!=0) team[i].num=team[i].num+1,team[i].time=team[i].time+team[i].p2Time+(team[i].p2Sub-1)*20;
		if(team[i].p3Time!=0) team[i].num=team[i].num+1,team[i].time=team[i].time+team[i].p3Time+(team[i].p3Sub-1)*20;
		if(team[i].p4Time!=0) team[i].num=team[i].num+1,team[i].time=team[i].time+team[i].p4Time+(team[i].p4Sub-1)*20;
	}
	strcpy(wname,team[0].Name);
	wsol=team[0].num;
	wpt=team[0].time;
	for(i=0;i<n;i++){
		if((team[i].num>wsol) || (team[i].num==wsol && team[i].time<wpt)){
			wsol=team[i].num;
			strcpy(wname,team[i].Name);
			wpt=team[i].time;
		}
	}
	printf("%s %d %d",wname,wsol,wpt);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值