第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)解题报告

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)

题目总结

A题 切蛋糕

题目信息

在这里插入图片描述

解题思路

如果我们将 1/k展开到二进制的形式,那么就可以计算出 需要 多少块1/(2^i) 蛋糕,因此就可以创建出分割的方案,最后进行打包。
本题还有一个有趣的地方是,知道需要多少块的蛋糕后,还需要计算出需要切割多少次,
假如说需要 1个四等分的, 1个八等分的,3个十六等分的,4个三十二等分的
那么 十六等分的需要切割次数 ⌈\lceil42\frac{4}{2}24⌉\rceil=2,可以得到四个三十二等分
八等分需要的切割次数 ⌈\lceil十六等分切割次数+十六等分原需要数额2\frac{十六等分切割次数+十六等分原需要数额}{2}2+⌉\rceil
也就是说,计算切割次数,需要受到前面切割次数信息的影响。

二进制小数点可以直接使用double进行计算,精度是足够的

AC代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const double esp = 1e-10;
const int N = 20;
LL a[N];
LL k;
bool b[N], flag;
int opt[N];
int cut_opt[N];bool Check(int n)
{static LL l = a[10] - k, r = a[10] + k;double sum = 0;for (int i = 0; i < n; i ++ ){if (!b[i])  continue;if (i <= 10)sum += (a[10 - i]) * k;elsesum += k * 1.0 / a[i - 10];}if (n <= 10)    //  (a[10 - i]) * k{static int i;   i = n;if (sum + (a[10 - i]) * k >= l && sum + (a[10 - i]) * k <= r){flag = true;return true;}else if (sum + (a[10 - i]) * k < l)return true;return false;}else    // 1.0 / a[i - 10];{static int i;   i = n;if (sum + k * 1.0 / a[i - 10] >= l && sum + k * 1.0 / a[i - 10] <= r){flag = true;return true;}else if (sum + k * 1.0 / a[i - 10] < l)return true;return false;}
}int main()
{a[0] = 1;for (int i = 1; i < N; i ++ )a[i] = (a[i - 1] << 1);memset(b, false, sizeof b);cin >> k;if (k == 1)     // 注意{printf("1\n");printf("2 1 0\n");return 0;}flag = false;double tmp = 1.0 / k;for (int i = 1; i <= 15; i ++ ){if (abs(tmp - 1.0 / a[i]) <= esp){b[i] = true;break;}else if (tmp >= 1.0 / a[i]){tmp -= 1.0 / a[i];b[i] = true;}else{b[i] = false;}}/*for (int i = 0; i < 15; i ++ ){printf("i=%d, b[%d]=%d\n", i, i, b[i]);}
*/for (int i = 15; i >= 1; i -- ){opt[i] = b[i] * k;}int outcnt = k;memset(cut_opt, 0, sizeof cut_opt);for (int i = 14; i >= 1; i -- ){cut_opt[i - 1] = (opt[i] + 1) / 2;opt[i - 1] += ((opt[i] + 1) / 2);outcnt += cut_opt[i - 1];}cout << outcnt << endl;// 需要切割的for (int i = 0; i < 15; i ++ ){if (cut_opt[i] != 0){for (int j = 1; j <= cut_opt[i]; j ++ )printf("1 %d\n", i);}}int cnt = 0;vector<int> pick;// b[i] 打包的for (int i = 0; i < 15; i ++)if (b[i]){cnt += b[i];pick.push_back(i);}for (int i = 1; i <= k; i ++ ){printf("2 %d", cnt);for (int j = 0; j < pick.size(); j ++ )printf(" %d", pick[j]);putchar('\n');}return 0;
}

小宝的幸运数组

题目信息

在这里插入图片描述

解题思路

需要注意子序列(如最长上升子序列LIS)和子串的区别
这里子数组的定义和子串类似
这里关键是对 原数组的前缀和 对k进行求余,得到的余数k,记录下来他的位置,然后对余数进行分析
余数 = 0,可以直接将下边作为一种解,进行更新答案
余数 = 1, res = min(res, max - min); 也就是说最长的,min + 1 ~ max这一段子序列是可行的,而且是余数等于1情况下最长的。

余数 = k-1
经过分析,发现子需要记录下来 余数中最先遇到的 min下标,与最后遇到的 max下标即可。

AC代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int N = 100010;
const int INF = 0x3f3f3f3f;
int a[N], b[N];
int n, k;
LL q[N], sum[N];int main()
{int T;  cin >> T;while (T -- ){cin >> n >> k;sum[0] = 0;memset(a, -1, sizeof a);memset(b, -1, sizeof b);int res = -1;for (int i = 1; i <= n; i ++ ){scanf("%lld", &q[i]);sum[i] = (sum[i - 1] + q[i]) % k;if (a[sum[i]] == -1){a[sum[i]] = i;}b[sum[i]] = i;if (sum[i] == 0){res = max(res, i);}else{res = max(res, b[sum[i]] - a[sum[i]]);}}/// cout << "###########\n";if (res == 0)   puts("-1");else    cout << res << endl;}return 0;
}

C题上进的凡凡

题目信息

在这里插入图片描述

解题思路

关键的思路就是使用dp的思想
以 a[i] 为开始的上进数组个数 f[i]
a[i]<=a[i+1]
f[i] = 1 + f[i + 1]
否则
f[i] =1
最后累加求和即可

AC代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 100010, INF = 0x3f3f3f3f;
int a[N], f[N];
int n;int main()
{cin >> n;for (int i = 1; i <= n; i ++ )scanf("%d", &a[i]);LL res = 0;a[n + 1] = -INF;for (int i = n; i >= 1; i -- ){f[i] = 1;if (a[i] <= a[i + 1])f[i] += f[i + 1];res += f[i];}cout << res << endl;return 0;
}

D题Seek the Joker I

原题信息

在这里插入图片描述

解题思路

本题是博弈论方向的题目,对于此类问题,我们需要从 必定失败的局面出发,推导出可以让对手达到必定失败的局面-》必胜
以及无法让对手达到必定失败的局面->必败,最后找到规律,有时间可以证明,写出结果即可

在这里插入图片描述

AC代码

#include <bits/stdc++.h>
using namespace std;bool Check(int n, int k)
{if (n % (k + 1) == 0)   return false;return true;
}
int main()
{int t;  cin >> t;while (t -- ){static int n, k;scanf("%d%d", &n, &k);if (Check(n - 1, k)){/// cout << "win" << endl;puts("yo xi no forever!");}else{/// cout << "lose" << endl;puts("ma la se mi no.1!");}}return 0;
}

E Seek the Joker II

原题信息

在这里插入图片描述

解题思路

方法与上题目相同,但是推导比较易错,** 最终的规律可以使用dp的形式表达出来 **
在这里插入图片描述

AC代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int N = 3000010;
bool st[N + 1000000];
LL a[N + 1000000];bool Check(int x, int y)
{if (a[x] == -1) return true;    // winelse if (a[x] == y) return false;   // losereturn true;    // win
}int main()
{memset(a, -1, sizeof a);memset(st, false, sizeof st);a[0] = 0;int cur = 1;for (int i = 1; i < N; i ++ ){if (st[i]){/// if (i <= 20)    printf("I=%d, st\n\ta[i]=", i);a[i] = -1;}else{/// if (i <= 20)    printf("I=%d, No_St\n\ta[i]=", i);a[i] = i + cur;if (i + cur <= N)st[i + cur] = true; // 注意这个cur ++;}/// if (i <= 20)    cout << a[i] << endl;}
/*cout << a[0] << endl;for (int i = 0; i <= 9; i ++ ){printf("i=%d, a[i]=%lld\n", i, a[i]);}
*/int t;  cin >> t;int x, n, mina, maxb;while (t -- ){scanf("%d%d", &n, &x);mina = x - 1, maxb = n - x;if (mina > maxb)  swap(mina, maxb);/// printf("a=%d, b=%d\n", mina, maxb);if (Check(mina, maxb))/// cout << "\t##win\n",cout << "yo xi no forever!" << endl;else/// cout << "\t##lose\n",cout << "ma la se mi no.1!" << endl;}return 0;
}

成绩查询ing

原题信息

在这里插入图片描述

解题思路

思路很清晰的模拟题,就是排序,查找,不会stl顶多就是再加一个二分
但是 时间很卡 应该使用快读 来解决时间的问题,考试的时候没有板子,就T了

AC代码

#include <bits/stdc++.h>
using namespace std;
const int BASE1 = 10, BASE2 = 10000;
map<string, int> t1;
set<string> t2[101];int n, m, opt;inline int IntRead()//内联函数稍微快一点点
{char ch = getchar();int s = 0, w = 1;while(ch < '0' || ch > '9'){if(ch == '-') w = -1;ch = getchar();}while(ch >= '0' && ch <= '9'){s = s * 10 + ch - '0',ch = getchar();}return s * w;
}inline string StringRead()
{string str;char s = getchar();//处理多余回车或空格while (s == ' ' || s == '\n' || s == '\r'){s = getchar();}//不断读入直到遇到回车或空格while (s != ' ' && s != '\n' && s != '\r'){str += s;s = getchar();}return str;
}inline void StringWrite(std::string str)
{int i = 0;while (str[i] != '\0'){putchar(str[i]), i++;}
}inline void IntWrite(int s)
{int k = 0, len = 0;if (s == 0)putchar('0');while (s){k = k * 10 + s % 10;s /= 10, len++;}for (int i = 0;i < len;i++){putchar(k % 10 + '0');k /= 10;}
}int main()
{cin >> n;string _name;   int _id, _sex, _grade;for (int i = 1; i <= n; i ++ ){_name = StringRead();_grade = IntRead(), _sex = IntRead(), _id = IntRead();t2[_grade].insert(_name);t1[_name] = _sex + BASE1 * _grade + BASE2 * _id;}cin >> m;while (m -- ){opt = IntRead();if (opt == 1){_name = StringRead();static int num;num = t1[_name];printf("%d %d %d\n", num % BASE2 / BASE1, num / BASE2, num % BASE1);}else{_grade = IntRead();static set<string>::iterator it;for (it = t2[_grade].begin(); it != t2[_grade].end(); it ++ ){StringWrite(*it);putchar('\n');}}}return 0;
}
/*
5
N 28 2 7475
UN 83 2 27550
EXF 28 2 17298
OVYNH 51 2 14827
XNV 53 1 7591
2
1
XNV
2
28
*/

G 贪吃的派蒙

原题信息

在这里插入图片描述

解题思路

关键就是改变其他人领取的数量,来使得派蒙的前一个人刚刚好领完,这是一个 数学 区间 + 不等式的问题
在这里插入图片描述
最后注意上下取整就好

H数羊

原题信息

在这里插入图片描述

解题思路

直接打表找规律,我是证明半天没出来,最后快没时间了,才打的表,血亏

AC代码

#include <bits/stdc++.h>
using namespace std;const int MOD = 998244353;
typedef long long LL;int fun(int x, int y)
{if (x == 1 && y == 0)   return 2;else if (x == 0 && y >= 0)  return 1;else if (x >= 2 && y == 0)  return x + 2;else    return fun(fun(x - 1, y), y - 1);
}int qmi(LL a, int k, int MOD)
{LL res = 1;while (k){if (k & 1){res = (res * a) % MOD;}a = a * a % MOD;k >>= 1;}return res;
}int cal(int x, int y)
{if(x == 1)  return 2;if (y == 0){return (x + 2) % MOD;}else if (y == 1){return (x * 2) % MOD;}else{return qmi(2, x, MOD);}
}int main()
{/*for (int i = 1; i <= 18; i ++ ){printf("i=%d, ", i);for (int j = 0; j <= 2; j ++ ){printf("%d, ", fun(i, j));}cout << endl;}*/int t;  cin >> t;while (t -- ){static int x, y;scanf("%d%d", &x, &y);printf("%d\n", cal(x, y));}}

I 买花

原题信息

解题思路

直接就是 2i2^i2i 的前缀和,但是要注意 不可以是一天的

AC代码

#include <bits/stdc++.h>
using namespace std;int a[200];bool Check(int x)
{for (int i = 2; i <= 15; i ++ ){if (x % a[i] == 0)return true;}return false;
}int main()
{a[1] = 1;for (int i = 2; i <= 15; i ++ ){a[i] = (a[i - 1] << 1);}for (int i = 1; i <= 15; i ++ )a[i] = a[i - 1] + a[i];int t;  cin >> t;while (t -- ){static int n;scanf("%d", &n);if (Check(n)){puts("YE5");}else{puts("N0");}}return 0;
}

J 这是一题简单的模拟

原题信息

在这里插入图片描述

解题思路

直接就是模拟就行了,关键是题目描述的不太清楚,多读几遍 就好了
对于一个可行的道路,必须要经过所有的城市,是N个,不是n个

AC代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;const int N = 310, INF = 0x3f3f3f3f;
int n, m;
int e[N][N];
bool st[N];
int k;
int path[N * 1000];
int res = INF;int main()
{cin >> n >> m;memset(e, 0x3f, sizeof e);for (int i = 1; i <= m; i ++ ){static int x, y, w;scanf("%d%d%d", &x, &y, &w);e[x][y] = e[y][x] = w;}cin >> k;res = INF;int tmpres;while (k -- ){tmpres = 0;static int n2;  scanf("%d", &n2);for (int i = 1; i <= n2; i ++ )scanf("%d", &path[i]);if (n2 != n)continue;n2 ++;  path[n2] = 0;path[0] = 0;memset(st, false, sizeof st);for (int i = 1, pre, cur; i <= n2; i ++ ){pre = path[i - 1], cur = path[i];if (st[cur] == true){tmpres = INF;break;}st[cur] = true;if (e[pre][cur] == INF){tmpres = INF;break;}tmpres += e[pre][cur];}res = min(res, tmpres);}if (res == INF) res = -1;cout << res << endl;return 0;
}

K黑洞密码

原题信息

在这里插入图片描述

解题思路

就是一个简单的字符串问题,和模拟相关,注意 字母谁在谁的后面,特判就好

AC代码

#include <bits/stdc++.h>
using namespace std;const int N = 100;
int num[N];
char str[N];
char s[N];
int nidx, cidx;char Change(char ch, int num)
{if (ch >= 'A' && ch <= 'Z'){if (ch + num <= 'Z')    return ch + num;else    return ch + num - 'Z' - 1 + 'b';}else{if (ch + num <= 'z')    return ch + num;else    return ch + num - 'z' - 1 + 'B';}
}int main()
{nidx = cidx = 0;cin >> str;for (int i = 0; i < 32; i ++ ){if (str[i] >= '0' && str[i] <= '9'){num[nidx ++] = str[i] - '0';}else{s[cidx ++] = str[i];}}for (int i = 0; i < 16; i ++ ){s[i] = Change(s[i], num[i]);}for (int i = 0; i < 4; i ++ ){for (int j = 3 + i * 4; j >= i * 4; j -- ){cout << s[j];}}cout << endl;return 0;
}

L建立火车站

原题信息

在这里插入图片描述

解题思路

求最大值最小,典型的 二分

AC代码

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int N = 100010;LL a[N];
LL n, k;bool Check(LL l, LL k)
{if (l == 0){for (int i = 2; i <= n; i ++){if (a[i] != a[i - 1])   return false;}return true;}LL dist;for (int i = 2; i <= n; i ++ ){dist = a[i] - a[i - 1];k = k - (dist - 1) / l;if (k < 0)  return false;}return true;
}int main()
{cin >> n >> k;for (int i = 1; i <= n; i ++ )scanf("%lld", &a[i]);sort(a + 1, a + n + 1);LL l, r, mid;l = 0, r = 1e12+10;while (l < r){mid = l + r >> 1;if (Check(mid, k)){r = mid;}else{l = mid + 1;}}cout << l << endl;return 0;
}

心得体会

题目信息要读懂,读清楚,不要漏掉信息,结合样例

空间开的足够,LL信息需要注意

输出的字符串YES,NO不要自己打,直接复制粘贴

快读卡时间,记得打板子

double精度很高的,不必转换为整数求二进制信息

一些数学题目,先打表找规律,别直接推导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法

文章目录1. Mini-batch 梯度下降2. 理解 mini-batch 梯度下降3. 指数加权平均数4. 理解指数加权平均数5. 指数加权平均的偏差修正6. 动量Momentum梯度下降法7. RMSprop8. Adam 优化算法9. 学习率衰减10. 局部最优的问题作业参考&#xff1a; 吴恩达视频课 深度学习笔记 1. Min…

PowerDesigner建数据库模型增加自定义扩展属性

PowerDesigner自7.x新增加一个特性&#xff0c;就是允许用户通过扩展模型的方式扩展模型的属性,但到底怎用一直搞不清楚&#xff0e;今天和同事商量准备直接在程序的Metadata信息实现上直接使用pdm时&#xff0c;我们需要对其进行扩展&#xff0c;因此又碰到这个问题&#xff0…

python初级进阶篇

python之路&#xff1a;进阶篇 一、作用域 在Python 2.0及之前的版本中&#xff0c;Python只支持3种作用域&#xff0c;即局部作用域&#xff0c;全局作用域&#xff0c;内置作用域&#xff1b;在Python 2.2中&#xff0c;Python正式引入了一种新的作用域 --- 嵌套作用域&#…

Educational Codeforces Round 103 (Rated for Div. 2)A~E解题报告

Educational Codeforces Round 103 (Rated for Div. 2) A. K-divisible Sum 原题信息 解题思路 AC代码 #include <bits/stdc.h> using namespace std;typedef long long LL; const int N 100010;int main() {int t; cin >> t;while (t -- ){static LL n, k;sc…

LeetCode 967. 连续差相同的数字(BFS/DFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 返回所有长度为 N 且满足其每两个连续位上的数字之间的差的绝对值为 K 的非负整数。 请注意&#xff0c;除了数字 0 本身之外&#xff0c;答案中的每个数字都不能有前导零。 例如&#xff0c;01 因为有一个前导零&#xff0c;所…

android中的简单animation(三)accelerate(加速),decelerate(减速),anticipate,overshoot,bounce...

animation_3.xml: 1 <?xml version"1.0" encoding"utf-8"?>2 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"3 android:orientation"vertical"4 android:padding"10dip"5 …

02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法(作业:优化方法)

文章目录1. 梯度下降2. mini-Batch 梯度下降3. 动量4. Adam5. 不同优化算法下的模型5.1 Mini-batch梯度下降5.2 带动量的Mini-batch梯度下降5.3 带Adam的Mini-batch梯度下降5.4 对比总结测试题&#xff1a;参考博文 笔记&#xff1a;02.改善深层神经网络&#xff1a;超参数调试…

Codeforces Round #697 (Div. 3)A~G解题报告

Codeforces Round #697 (Div. 3)A~G解题报告 题 A Odd Divisor 题目介绍 解题思路 乍一想本题&#xff0c;感觉有点迷迷糊糊&#xff0c;但是证难则反&#xff0c;直接考虑没有奇数因子的情况&#xff0c;即 N 2i2^{i}2i,那么当N ! 2i2^i2i时&#xff0c;就有 奇数因子 注意…

LeetCode 1048. 最长字符串链(哈希+DP)

文章目录1. 题目2. 解题1. 题目 给出一个单词列表&#xff0c;其中每个单词都由小写英文字母组成。 如果我们可以在 word1 的任何地方添加一个字母使其变成 word2&#xff0c;那么我们认为 word1 是 word2 的前身。 例如&#xff0c;“abc” 是 “abac” 的前身。 词链是单词…

LeetCode第45场双周赛-解题报告

LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为数据范围比较小&#xff0c;可以直接模拟&#xff0c;如果出现一次就加上去。 或者是直接map打表也可以 AC代码 暴力 class Soluti…

LeetCode 1034. 边框着色(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给出一个二维整数网格 grid&#xff0c;网格中的每个值表示该位置处的网格块的颜色。 只有当两个网格块的颜色相同&#xff0c;而且在四个方向中任意一个方向上相邻时&#xff0c;它们属于同一连通分量。 连通分量的边界是指连…

Codeforces Round #693 (Div. 3)A~G解题报告

Codeforces Round #693 (Div. 3)A~G解题报告 A Cards for Friends 原题信息 http://codeforces.com/contest/1472/problem/A 解题思路 本题就是一个找 x/2iold,y/2joldx/2^iold,y/2^joldx/2iold,y/2jold, 返回 2i∗2j>n2^i*2^j>n2i∗2j>n 一般这样的题目都需要注…

02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架

文章目录1. 调试处理2. 为超参数选择合适的范围3. 超参数调试的实践4. 归一化网络的激活函数5. 将 Batch Norm 拟合进神经网络6. Batch Norm 为什么奏效7. 测试时的 Batch Norm8. Softmax 回归9. 训练一个 Softmax 分类器10. 深度学习框架11. TensorFlow作业参考&#xff1a; 吴…

关于整数划分的问题

&#xff08;一&#xff09;递归法 根据n和m的关系&#xff0c;考虑以下几种情况&#xff1a; &#xff08;1&#xff09;当n1时&#xff0c;不论m的值为多少&#xff08;m>0)&#xff0c;只有一种划分即{1}; (2) 当m1时&#xff0c;不论n的值为多少…

LeetCode第 227 场周赛题解

LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-and-rotated/ 解题思路 直接进行测试就行&#xff0c;因为数组的数据范围很小&#xff0c;直接进行O(N2&#xff09;O(N^2&#xff09;O(…

LeetCode 1124. 表现良好的最长时间段(单调栈/哈希)

文章目录1. 题目2. 解题2.1 单调栈2.2 哈希1. 题目 给你一份工作时间表 hours&#xff0c;上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候&#xff0c;那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」&#xff0c;意…

二进制如何转十进制,十进制如何转二进制

1 转成二进制主要有以下几种&#xff1a;正整数转二进制&#xff0c;负整数转二进制&#xff0c;小数转二进制&#xff1b; 1、 正整数转成二进制。要点一定一定要记住哈&#xff1a;除二取余&#xff0c;然后倒序排列&#xff0c;高位补零。 也就是说&#x…

02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)

文章目录1. 探索TensorFlow库1.1 线性函数1.2 计算 sigmoid1.3 计算损失函数1.4 One_Hot 编码1.5 用0,1初始化2. 用TensorFlow建立你的第一个神经网络2.0 数字手势识别2.1 创建 placeholder2.2 初始化参数2.3 前向传播2.4 计算损失2.5 后向传播、更新参数2.6 建立完整的TF模型2…

Codeforces Round #701 (Div. 2)赛后补题报告(A~D)

Codeforces Round #701 (Div. 2)赛后补题报告(A~D) A. Add and Divide 原题信息 http://codeforces.com/contest/1485/problem/A 解题思路 对于题目基本有两种方式&#xff0c;一种是直接暴力求解&#xff0c;第二种是使用函数求导进行严格证明 暴力求解 a1e9a1e^9a1e9不…

Codeforces Round #700 (Div. 2)A~D2解题报告

Codeforces Round #700 (Div. 2)A~D2解题报告 A Yet Another String Game 原题链接 http://codeforces.com/contest/1480/problem/A 解题思路 Alice想让更小&#xff0c;先手Bob想让其更大&#xff0c;后手解决方案当然是贪心&#xff0c;从第一个排到最后一个如果不是选择…