博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF519 ABCD D. A and B and Interesting Substrings(map,好题)
阅读量:7165 次
发布时间:2019-06-29

本文共 2465 字,大约阅读时间需要 8 分钟。

A:

水题没什么好说的。

#include 
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3fusing namespace std;char ma[10][10];int su,su2;int main(){ while(scanf("%s",ma[0])!=EOF) { su=0; su2=0; for(int i=1;i<8;i++) scanf("%s",ma[i]); for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { if(ma[i][j]=='Q') { su+=9; } else if(ma[i][j]=='q') { su2+=9; } else if(ma[i][j]=='R') { su+=5; } else if(ma[i][j]=='r') { su2+=5; } else if(ma[i][j]=='B') { su+=3; } else if(ma[i][j]=='b') { su2+=3; } else if(ma[i][j]=='N') { su+=3; } else if(ma[i][j]=='n') { su2+=3; } else if(ma[i][j]=='P') { su+=1; } else if(ma[i][j]=='p') { su2+=1; } else if(ma[i][j]=='K') { su+=0; } else if(ma[i][j]=='k') { su2+=0; } } } if(su>su2) printf("White\n"); else if(su==su2) { printf("Draw\n"); } else printf("Black\n"); } return 0;}

B:

水题,简单排序即可。

#include 
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#include
#include
typedef __int64 ll;#define mod 10000007using namespace std;int n,a[100010],b[100010],c[100010],k;ll sum;int main(){ while(scanf("%d",&n)!=EOF) { for(int i=0;i

C:

给你n个老手,m的新手,有两种组队方式,一种是1个老手带两个新手,另外一种是2个老手带一个新手,求最多的组队对数。

我是暴力求的,记得还有一种方法,不会算了。

#include 
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#include
#include
typedef __int64 ll;#define mod 10000007using namespace std;int n,m;ll sum;int main(){ while(scanf("%d%d",&n,&m)!=EOF) { sum=0; while(n>0&&m>0) { if(n>=m&&n>=2) { sum++; n-=2; m-=1; } else if(m>=2) { sum++; n-=1; m-=2; } else break; } printf("%I64d\n",sum); } return 0;}

D.

题意:在给的一个串,每个字母有固定的权值求满足如下条件的子串的数目

    1 该子串的首字母和尾字母相同

    2 该串除了首尾字母外,其他字母的权值和为0

思路:维护一个前缀和,用了26个hash分别记录了26种字母每个的前缀和,如果遇到了一个'a',就检查之前有几个和他的前缀和一样的'a',在和上加上去,并维护前缀和。

map真的是好牛逼,可惜比赛的时候没想到,希望以后会用吧!

#include 
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#include
#include
typedef __int64 ll;#define mod 10000007using namespace std;int h[30];char s[100010];ll sum,cnt;int main(){ while(scanf("%d",&h[0])!=EOF) { cnt=0; sum=0; for(int i=1;i<26;i++) { scanf("%d",&h[i]); } scanf("%s",s); int l=strlen(s); map
q[30]; //map
q[30]; for(int i=0;i

 

转载地址:http://cimwm.baihongyu.com/

你可能感兴趣的文章
Custom Directives in Vue
查看>>
Nginx配置——域名跳转
查看>>
Ubuntu重新安装之后要做的事
查看>>
Pomelo官方demo ChatofPomelo简析之一——用户登录
查看>>
读python官方教程的一些记录
查看>>
CentOS 6 安装
查看>>
运算符、表达式概论
查看>>
软件架构师应该知道的97件事
查看>>
Linux 用户和组 (4) userdel
查看>>
php面向对象三,继承父类extends
查看>>
网络编程学习——带外数据
查看>>
iOS开发编码建议与编程经验
查看>>
linux文件权限
查看>>
关于Spring事务回滚的问题
查看>>
JRE冲掉了JDK
查看>>
Spring MVC 教程,快速入门,深入分析——关于写几个配置文件的说明
查看>>
我的友情链接
查看>>
MongDB副本集replset测试【MongDB系列二】
查看>>
Android开发之旅:环境搭建及HelloWorld
查看>>
php/web缓存Cache为王
查看>>