题目链接:https://codeforces.com/contest/1216


A:

题意:给出一个仅有a,b组成的字符串,可执行操作把a换成b,b换成a,问最小操作次数,使得任意前偶数里a,b的数量相等。

idea:遍历一遍就好了,不满足条件的就换。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4
 5 using namespace std;
 6
 7 int n, ans;
 8 string a;
 9
10 int main()
11 {
12     cin >> n >> a;
13     int len = n;
14     if (n % 2 != 0)  len -= 1;
15
16     for (int i = 0; i < len; i ++ )
17     {
18         if (a[i] == 'a')
19         {
20             if (a[i + 1] == 'b')  i ++ ;
21             else
22             {
23                 a[i + 1] = 'b';
24                 ans ++ ;
25                 i ++ ;
26             }
27         }
28         else
29         {
30             if (a[i + 1] == 'a')  i ++ ;
31             else
32             {
33                 a[i + 1] = 'a';
34                 ans ++ ;
35                 i ++ ;
36             }
37         }
38     }
39
40     cout << ans << endl;
41     cout << a;
42     return 0;
43
44 }

View Code

B:

题意:射击n个目标,每次会有不同的消耗,问按什么顺序射击可以消耗最少。

idea:贪心,排序后,从最大的开始依次射击。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4
 5 using namespace std;
 6 const int MAXN = 1000 + 10;
 7 int n, ans, a[MAXN], b[MAXN];
 8
 9 bool cmp(int x, int y)
10 {
11     return x > y;
12 }
13
14 int main()
15 {
16     cin >> n;
17     for (int i = 0; i < n; i ++ )
18     {
19         cin >> a[i];
20         b[i] = a[i];
21     }
22
23     sort(a, a + n, cmp);
24
25     for (int i = 0; i < n; i ++ )
26     {
27         ans += a[i] * i + 1;
28     }
29
30     cout << ans << endl;
31     for (int i = 0; i < n; i ++ )
32     {
33         for (int j = 0; j < n; j ++ )
34         {
35             if (a[i] == b[j])
36             {
37                 cout << j + 1 << " ";
38                 b[j] = -1;
39             }
40         }
41     }
42     return 0;
43 }

View Code

D:

题意:n种剑,每种剑有m把,来了k个人,每人偷走了s把剑,且每个人偷走的都是同一类型的剑,以知偷走后剩余的剑的数量a1,a2 .. an,问最少偷剑的人是多少。

idea:拿剩余数量中最大的数和其它an相减,计算出相减这些数的最大公约数就是每个人偷走的剑的数量,差值除gcd累加就是人数

 1 include <iostream>
 2 #include <cstdio>
 3 #include <bits/stdc++.h>
 4
 5 using namespace std;
 6 typedef long long ll;
 7 const int MAXN = 2e5 + 10;
 8 ll n, a[MAXN], b[MAXN], ss;
 9
10 int main()
11 {
12     scanf("%lld",&n);
13     for (int i = 0; i < n; i ++ )
14     {
15         scanf("%lld",&a[i]);
16         ss = max(a[i], ss);
17     }
18     for (int i = 0; i < n; i ++ )  b[i] = ss - a[i];
19
20     ll c = 0;
21     for (int i = 0; i < n; i ++ )
22     {
23         c = __gcd(c,b[i]);
24     }
25     ll ans = 0;
26     for (int i = 0; i < n; i ++ )
27     {
28         ans += b[i] / c;
29     }
30     cout << ans << " " << c;
31     return 0;
32 }

View Code

转载于:https://www.cnblogs.com/chuyds/p/11572650.html

Codeforces Round #587 (Div. 3)相关推荐

  1. Codeforces Round #587 (Div. 3) C. White Sheet 思维

    传送门 文章目录 题意: 思路: 题意: 给你一个白色的矩形和俩个黑色的矩形,问白色被黑色覆盖后还能不能看到. 思路: 经典被简单题卡. 一开始写了个自我感觉很对的做法,结果wa41wa41wa41, ...

  2. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  3. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  4. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  5. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  6. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  7. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  8. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  9. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. 3-unit5 ISCSI
  2. oracle 查看连接数
  3. 哪个男孩不想拥有这种牌面?
  4. 内蒙古高考2021年成绩查询,内蒙古招生考试信息网:2021年内蒙古高考查分入口、查分系统...
  5. 提高电脑反应速度_设计师笔记本电脑推荐——视觉系ThinkBook 15p创造本
  6. php ../ 和 ./ 区别,php $_POST 与 php://input的区别分析
  7. [转]JAVA自动装箱和拆箱
  8. 合肥赛区结束,继续训练提升
  9. could not connect to smtp host java_服务器发送邮件出现Could not connect to SMTP host错误 解决办法...
  10. pythoncharm设置翻译器_pyCharm 设置调试输出窗口中文显示方式(字符码转换)
  11. JAVA实战项目--文章发布系统
  12. JAVAWEB开发Myeclipse 项目中报“无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它”解决办法
  13. wps中图片怎么居中_Word文档技巧—文档中图片批量居中显示
  14. 海盗湾(The Pirate Bay)的战争——每一名技术人员都应该思考的问题
  15. HBuilderX快捷键大全
  16. Linux上的文件类型与默认图标
  17. windows防火墙 程序_如何允许应用程序通过Windows防火墙进行通信
  18. ArcScene制作三维地图-三维模型
  19. 微信健身房小程序开发源码设计方案
  20. 简单演示程序序列号的破解

热门文章

  1. selenium+chromedriver监测视频流源地址时允许flash自动启用
  2. 什么是MyCat?为什么要用到MyCat呢?
  3. NodeJS文档之Buffer(1)-Buffer的简介
  4. 在mac下安装matplotlib,xlrd
  5. [整理]MySql批量数据导入Load data infile解决方案
  6. 【引用】如何关闭SELinux
  7. 使用C#开发ActiveX控件[Obsolete]
  8. 自已编写C# DLL 绑定到unity进程进行单步调试
  9. 安装安卓SDK和JDK的简便方法
  10. RAS RC4 AES 加密 MD5