A  P3741 honoka的键盘

和昨天的T1一样,

枚举改哪一个

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1e6+10;
 7 inline int read()
 8 {
 9     char c=getchar();int flag=1,x=0;
10     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
12 }
13 int n;
14 char s[MAXN];
15 int ans=0;
16 inline void pd()
17 {
18     int now=0;
19     for(int i=1;i<=n-1;i++)
20         if(s[i]=='V'&&s[i+1]=='K')
21             now++;
22     ans=max(ans,now);
23 }
24 int main()
25 {
26     n=read();
27     scanf("%s",s+1);
28     int l=strlen(s+1);
29     pd();
30     for(int i=1;i<=n;i++)
31     {
32         char p=s[i];
33         if(p=='V')
34         {
35             s[i]='K';
36             pd();
37             s[i]='V';
38         }
39         else
40         {
41             s[i]='V';
42             pd();
43
44             s[i]='K';
45         }
46     }
47     printf("%d",ans);
48     return 0;
49 }

View Code

B  P2911 [USACO08OCT]牛骨头Bovine Bones

三重循环

记录好出现的次数

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1e6+10;
 7 inline int read()
 8 {
 9     char c=getchar();int flag=1,x=0;
10     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
12 }
13 int happen[MAXN];
14 int main()
15 {
16     int a=read(),b=read(),c=read();
17     for(int i=1;i<=a;i++)
18         for(int j=1;j<=b;j++)
19             for(int k=1;k<=c;k++)
20                 happen[i+j+k]++;
21     int ans=0;
22     int num=0;
23     for(int i=1;i<=a+b+c;i++)
24     {
25         if(happen[i]>num)
26         {
27             num=happen[i];
28             ans=i;
29         }
30     }
31     printf("%d",ans);
32     return 0;
33 }

View Code

C  P1765 手机_NOI导刊2010普及(10)

打个表,预处理出每个字母需要几次

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1e6+10;
 7 inline int read()
 8 {
 9     char c=getchar();int flag=1,x=0;
10     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
12 }
13 int a[501];
14 int main()
15 {
16     int now=1;
17     for(int i='a';i<='o';i++)
18     {
19         a[i]=now++;
20         if(now==4)    now=1;
21     }
22     a['p']=1;    a['q']=2;    a['r']=3;    a['s']=4;
23     a['t']=1;    a['u']=2;    a['v']=3;
24     a['w']=1;    a['x']=2;    a['y']=3;    a['z']=4;
25     a[' ']=1;
26     char c;
27     int ans=0;
28     while(scanf("%c",&c)==1)
29         ans+=a[c];
30     printf("%d",ans);
31     return 0;
32 }

View Code

D  P1482 Cantor表(升级版)

用最大公约数进行约分

注意n,m不要搞反了

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1e6+10;
 7 inline int read()
 8 {
 9     char c=getchar();int flag=1,x=0;
10     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
12 }
13 int a,b,c,d;
14 int gcd(int a,int b)
15 {
16     return b==0?a:gcd(b,a%b);
17 }
18 int main()
19 {
20     scanf("%d/%d",&a,&b);
21     scanf("%d/%d",&c,&d);
22     int p=gcd(a,b);
23     a/=p;b/=p;
24     p=gcd(c,d);
25     c/=p;d/=p;
26     p=gcd(c,b);
27     c/=p;b/=p;
28     p=gcd(a,d);
29     a/=p;d/=p;
30     printf("%d %d",b*d,a*c);
31     return 0;
32 }

View Code

E  P2651 添加括号III

最难的一道题

很显然的一点是

第一个一定是分子

第二个一定是分母

分子越大越好

那么就看一下a1*a3*a4*……an能不能整除a2就好

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #define LL long long
 6 using namespace std;
 7 const LL MAXN=1e7+10;
 8 inline LL read()
 9 {
10     char c=getchar();LL flag=1,x=0;
11     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
12     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
13 }
14 LL T;
15 LL a[MAXN];
16 LL gcd(LL a,LL b)
17 {
18     return b==0?a:gcd(b,a%b);
19 }
20 int main()
21 {
22     T=read();
23     while(T--)
24     {
25         a[2]=1;
26         LL n=read();
27         for(LL i=1;i<=n;i++)    a[i]=read();
28         int mu=a[2];
29         mu/=gcd(a[1],mu);
30         for(LL i=3;i<=n;i++)
31             mu/=gcd(mu,a[i]);
32         if(mu==1)    printf("Yes\n");
33         else             printf("No\n");
34     }
35     return 0;
36 }

View Code

F  P2369 EXCEEDED WARNING A

很水的一道排序题

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1e6+10;
 7 inline int read()
 8 {
 9     char c=getchar();int flag=1,x=0;
10     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
12 }
13 int n,m;
14 int a[MAXN];
15 int main()
16 {
17     n=read();m=read();
18     for(int i=1;i<=n;i++)    a[i]=read();
19     sort(a+1,a+n+1);
20     for(int i=1;i<=m;i++)
21         printf("%d\n",a[i]);
22     return 0;
23 } 

View Code

G  P2562 [AHOI2002]Kitty猫基因编码

用string记录状态,递归计算

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<map>
 6 #include<iostream>
 7 using namespace std;
 8 const int MAXN=1001;
 9 inline int read()
10 {
11     char c=getchar();int flag=1,x=0;
12     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
13     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
14 }
15 string ans;
16 char a[MAXN];
17 string A="A";
18 string B="B";
19 string C="C";
20 void dfs(int l,int r)
21 {
22     int flag1=1,flag0=1;
23     for(int i=l;i<=r;i++)
24     {
25         if(a[i]=='0')    flag1=0;
26         if(a[i]=='1')    flag0=0;
27     }
28     if(flag0)    ans+=A;
29     else if(flag1)    ans+=B;
30     else
31     {
32         ans+=C;
33         int mid=l+r>>1;
34         dfs(l,mid);dfs(mid+1,r);
35     }
36 }
37 int main()
38 {
39     scanf("%s",a+1);
40     dfs(1,strlen(a+1));
41     cout<<ans;
42     return 0;
43 }

View Code

H  P2548 [AHOI2004]智能探险车

开一个二维string

直接用string判重

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<map>
 6 #include<iostream>
 7 using namespace std;
 8 const int MAXN=1001;
 9 inline int read()
10 {
11     char c=getchar();int flag=1,x=0;
12     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
13     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
14 }
15 string a[MAXN][MAXN];
16 int flag[MAXN];
17 int main()
18 {
19     int n=read(),m=read();
20     for(int i=1;i<=m;i++)
21         for(int j=1;j<=n;j++)
22             cin>>a[i][j];
23     for(int i=2;i<=m;i++)
24         for(int j=1;j<=n;j++)
25             if(a[i][j]!=a[i-1][j])
26                 flag[j]=1;
27     for(int i=1;i<=n;i++)
28     {
29         if(flag[i]==1)    printf("* ");
30         else cout<<a[m][i]<<" ";
31     }
32     return 0;
33 }

View Code

I  P1539 [TJOI2011]01矩阵

这道题好像从10.5改了题目之后就没人A过

自己瞎搞了一个dp,水到10分23333

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<map>
 6 #include<iostream>
 7 using namespace std;
 8 const int MAXN=1001;
 9 inline int read()
10 {
11     char c=getchar();int flag=1,x=0;
12     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
13     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
14 }
15 int dp[MAXN][MAXN][3];
16 int n,m;
17 char s[MAXN];
18 int main()
19 {
20     n=read();m=read();
21     for(int i=1;i<=n;i++)
22     {
23         scanf("%s",s);
24         for(int j=1;j<=m;j++)
25         {
26             if(s[j]=='1')    dp[i][j][1]=1;
27             if(s[j]=='0')    dp[i][j][0]=1;
28         }
29     }
30     for(int i=1;i<=n;i++)
31     {
32         for(int j=1;j<=m;j++)
33         {
34             if(dp[i][j][1]!=1&&dp[i][j]!=0)
35             {
36                 dp[i][j][1]+=dp[i-1][j][0];
37                 dp[i][j][1]+=dp[i-1][j][1];
38                 dp[i][j][1]+=dp[i+1][j][0];
39                 dp[i][j][1]+=dp[i+1][j][1];
40                 dp[i][j][1]+=dp[i][j-1][0];
41                 dp[i][j][1]+=dp[i][j-1][1];
42                 dp[i][j][1]+=dp[i][j+1][0];
43                 dp[i][j][1]+=dp[i][j+1][1];
44
45                 dp[i][j][0]+=dp[i-1][j][1];
46                 dp[i][j][0]+=dp[i+1][j][1];
47                 dp[i][j][0]+=dp[i][j-1][1];
48                 dp[i][j][0]+=dp[i][j+1][1];
49             }
50
51         }
52     }
53     printf("%d",max(dp[n][m][0],dp[n][m][1]));
54     return 0;
55 }

View Code

J  P3879 [TJOI2010]阅读理解

map的裸题

可以写map<string,vector>

但是我不会写,就自己定义了个结构体

对于每一个字符串的读入

不要忘记判断该序号是否已经出现过

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<map>
 6 #include<iostream>
 7 using namespace std;
 8 const int MAXN=1e6+10;
 9 inline int read()
10 {
11     char c=getchar();int flag=1,x=0;
12     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
13     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*flag;
14 }
15 int n,m;
16 struct node
17 {
18     int happen[438];
19     int time;
20 };
21 map<string,node>mp;
22 inline void pd(string a,int pos)
23 {
24     if(mp[a].happen[mp[a].time]==pos)    return ;//注意序号不能重复
25     mp[a].happen[++mp[a].time]=pos;
26 }
27 int main()
28 {
29     n=read();
30     for(int i=1;i<=n;i++)
31     {
32         int num=read();
33         string a;
34         for(int j=1;j<=num;j++)
35             cin>>a,pd(a,i);
36     }
37     m=read();
38     for(int i=1;i<=m;i++)
39     {
40         string a;cin>>a;
41         for(int i=1;i<=mp[a].time;i++)
42             printf("%d ",mp[a].happen[i]);
43         printf("\n");
44     }
45     return 0;
46 }

View Code

K  P2333 [SCOI2006]一孔之见

L  P3761 [TJOI2017]城市

转载于:https://www.cnblogs.com/zwfymqz/p/7741938.html

2017.10.27涩会题大乱斗部分题解相关推荐

  1. C++游戏——小胎大乱斗

    小胎大乱斗! 预告:PVP 模式 教程有一点儿问题!血量为负数,一进去就扣钱------教程里面的字看看就行了,看完就退出重新以"不要教程"模式开始!(笑哭) 不过有个bug 会碰 ...

  2. 「C++游戏」双人大乱斗

    (原创) Version: v1.1 资源下载:https://download.csdn.net/download/cjz2005/12819483 现如今已经是免费免积分的了!! 简介 →双人游戏 ...

  3. 火箭工作室c++小游戏——虫虫大乱斗

    这个游戏比较简陋,是有关奥数的.但是你一旦找到了规律以后呢就很容易了. 废话不多说,这是代码:#include<bits/stdc++.h> #include<windows.h&g ...

  4. 计算机社团嘉年华的游戏,社团嘉年华,游戏大乱斗!

    原标题:社团嘉年华,游戏大乱斗! 一年一度倍受期待的社团嘉年华在周二圆满结束 大家肯定还对那些有趣的游戏念念不忘吧! 如果你没能及时参加,没关系 喇叭会带着你去回顾社团嘉年华那些精彩的活动! 立夏的五 ...

  5. cos大乱斗服务器维护,《COS大乱斗》服务器数据互通公告

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各位亲爱的COSer: 为了给大家提供更加优质的游戏环境,增加游戏乐趣,提高游戏互动性,我们将会在2016年11月7日对COS大乱斗混服[S4-261]区 ...

  6. ★「C++游戏」BattleOfPhantom:大乱斗游戏升级版

    (原创) 目前正在不断更新! ★ 一款超级有趣的大乱斗游戏,包含多种游戏模式,支持双人联机. 离线情况下也可以与多个(或一群)机器玩家进行疯狂的对战. 直接上图 使用C++ with EGE图形库编写 ...

  7. ps4jump大乱斗服务器维护,Jump大乱斗新人实用技巧分享 新手注意事项介绍

    Jump大乱斗新人实用技巧分享 新手注意事项介绍 2019-02-15 11:30:23来源:jumpforce吧/媚鬼丶编辑:云曼衍评论(0) <Jump大乱斗>已经于今天正式和玩家们见 ...

  8. Unity3D网络游戏实战——实践出真知:大乱斗游戏

    前言 这一章是教我们做一个大乱斗游戏.但是书中的代码有些前后不一致导致运行错误,如果你也碰到了这样的情况,可以参考我的代码 我们要完成的主要有以下这些事 左键操控角色行走 右键操控角色攻击 受到攻击掉 ...

  9. 实践出真知:大乱斗游戏

    文章目录 第一版角色类Human BaseHuman CtrlHuman SyncHuman 通信协议 消息队列 NetManager类 加入网络功能 消息处理 第二版角色类 CtrlHuman Sy ...

最新文章

  1. AndroidStudio 解决Android方法数超过65535的问题
  2. 腾讯html5平台,腾讯浏览服务
  3. SpringMVC莫名其妙出现No bean named 'cacheManager' is defined错误
  4. 读懂现金贷产品的客群风险标签维度
  5. 18、OpenCV Python 简单实现一个图片生成(类似抖音生成字母人像)
  6. 帆软报表,报错:sql注入攻击问题
  7. ROS安装时rosdep init与rosdep update问题解决方法(2022.04.08亲测)
  8. leetcode—10.栈题型python解答
  9. 一行代码实现微信电脑多开
  10. cacti mysql 压缩 备份_cacti数据迁移步骤 CactiEZ重装系统后 恢复原来的数据 CactiEZ重装系统前要备份的数据...
  11. 51单片机驱动8位数码管(74HC595驱动)滚动显示
  12. html验证码自动刷新,验证码输入错误后自动刷新验证码
  13. 批量下载CMIP6数据
  14. 十大超级老牌黑客逐个曝光
  15. Adobe Lightroom Classic 入门教程(十)本地局部调整 --- 污点修复与红眼祛除
  16. 秋招在即,你准备好了吗?BAT算法工程师面试经验分享。
  17. 一文了解市面上的N种物理锁架构
  18. 恶意软件的沙盒规避技术
  19. 嘉宾专访|2020 PostgreSQL亚洲大会中文分论坛:韩国盛
  20. 使用字典统计不同班级的成绩(d.get()函数的灵活应用)

热门文章

  1. 火狐浏览器保存书签不在书签工具栏显示
  2. 传感器实验——控制电机
  3. 忽悠马云10亿,还阿里4500亿:做对事赢一场,跟对人赢一生!(文章为转载,网上各种假原创,未搜到原作者)
  4. PLC实训 — 传感器介绍
  5. iOS开发使用nib进行界面设计并跳转
  6. NFC无线充电(WLC)介绍
  7. json to excel java_java解析json生成excel
  8. 我把它当副业月入3万多,新手月入过万的干货分享!
  9. 网络——传输层(详细版)
  10. Leetcode-1094. 拼车