您的位置:首页 > 其它

浙江中医药大学程序设计代表队2018年训练赛十(BCD)

2018-04-09 15:04 435 查看
【前言】
A是签到题叭就不管了先给链接叭按顺序哒
【链接】
http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2104

http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2105

http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2106





【分析】
不知道有什么好分析的...
噢噢有一个就是如果已存在要更新。所以在create的时候就判断之前是否有出现过,如果有,更新,然后id--。操作0和1的判断就放在open的时候,如果是1就往前找,0就输出。
写这道题学会了用字符数组



【代码】

#include<cstdio>
#include<cstring>
using namespace std;
int type[1010]; //保存操作类型
char name[1010][25];
char data[1010][25];
int main()
{
char cmd[10],str[25];
int id=0,i;
while(~scanf("%s",cmd)){
if(cmd[0]=='e') break;
if(cmd[0]=='c'){
scanf("%s%d%s",name[id],&type[id],data[id]);
for(i=id-1;i>=0;i--)
if(!strcmp(name[id],name[i])){
strcpy(data[i],data[id]);
type[i]=type[id];
id--;
}
id++;
}
else{
scanf("%s",str);
for(i=id;i>=0;i--)
if(!strcmp(str,name[i])){
if(type[i])
strcpy(str,data[i]);
else{
printf("%s\n",data[i]);
break;
}
}
}
}
return 0;
}


【分析】
拿着纸笔推了半天...还是wa了...对我就是个傻子...还是代码来叭
每个可能答案都满足一半也就是三个条件为真,用返回值之和==3判断。有关联的自定义函数顺序不能颠倒,不然就调用不了了。
【代码】#include<stdio.h>
#include<cstring>
int f[7];
int A(){
if (!f[0]) return 1;
return 0;
}
int B(){
if (f[0]||f[2]) return 1;
return 0;
}
int C(){
if (!A()&&!B()) return 1;
return 0;
}
int F(){
if (f[5]) return 1;
return 0;
}
int D(){
if (!C()&&!F()) return 1;
return 0;
}
int E(){
if (A()&&D()&&!B()&&!C()&&!F()) return 1;
return 0;
}
int main(){
for (int i=0;i<6;i++){
memset(f,0,sizeof(f));
f[i]=1;
if(A()+B()+C()+D()+E()+F()==3)
printf ("%c\n",'A'+i);
}
return 0;
}


【分析】
用到了dfs...鉴于我太菜了不便多说,直接上代码
【代码】#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
int a[100];
int v[100];
int ans,n,m;
void dfs( int i , int num , int sum )
{
if(num==m){
ans=max(ans,sum);
return;
}
if(i>n) return;
if(!v[i-1]&&!v[i+1]){
v[i]=1;
if(i==1) v[n+1]=1;
dfs(i+2,num+1,sum+a[i]);
v[i]=0;
if(i==1) v[n+1]=0;
}
dfs(i+1,num,sum);
}
int main()
{
while( ~scanf("%d %d" , &n, &m)){
memset(v,0,sizeof(v));
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
if(m>n/2)
printf("Error!\n");
else{
ans=-INF;
dfs(1,0,0);
printf("%d\n",ans);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐