2017, X Samara Regional Intercollegiate Programming Contest M. Last Man Standing (贪心,双指针)
题意:有\(n\)个吃鸡玩家,在某个时间段给你他们每个人的杀敌数,判断数据是否合法,并输出每个人对应的杀敌情况.
题解:刚开始写的是直接暴力枚举,向后去找并且标记,然后存到vector最后输出,结果一直MLE,后来发现可以用双指针来搞.首先只要总杀敌数不大于\(n-1\),那么就永远都是合法的,然后不难发现,因为是降序排列,那么后面的人都可以是前面人的炮灰,所以我们用左指针反着找到第一个不为\(0\)的数,每次对左指针所在的数\(-1\),那么右指针就要向左移一个(因为它被左指针干掉了),若左指针所在的数变为\(0\)了,就要向左移一个(已经满足杀敌数了),每次都输出一下就好了.
代码:
int n;
int a[N]; int main() {
//ios::sync_with_stdio(false);cin.tie(0);
scanf("%d",&n);
ll sum=0;
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
sum+=a[i];
} if(sum>n-1){
puts("NO");
}
else{
puts("YES");
int l=n;
int r=n;
while(a[l]==0) l--;
while(l>=1){
printf("%d %d\n",l,r);
r--;
a[l]--;
if(a[l]==0) l--;
}
} return 0;
}
2017, X Samara Regional Intercollegiate Programming Contest M. Last Man Standing (贪心,双指针)的更多相关文章
- 2017, X Samara Regional Intercollegiate Programming Contest 题解
[题目链接] A - Streets of Working Lanterns - 2 首先将每一个括号匹配串进行一次缩减,即串内能匹配掉的就匹配掉,每个串会变成连续的$y$个右括号+连续$z$个左括号 ...
- 2017, X Samara Regional Intercollegiate Programming Contest E. Bonuses and Teleports (思维,模拟)
题意:在\(x\)轴上有很多传送点和钻石,当位于传送点上时,可以传送到其他任意传送点(不记操作数),位于钻石上时可以吃掉它,每次可以移动一个单位,问最少多少次可以吃掉所有的钻石. 题解:对于某个位置上 ...
- 2017, X Samara Regional Intercollegiate Programming Contest B.Pursuing the Happiness (string函数)
题意:给你一个字符串,可以交换两个字符的位置,问操作后能否在字符串中找到子串\("happiness"\),如果不能,输出交换的两个位置. 题解:这题其实用string中的find ...
- Gym100971B Gym100971C Gym100971F Gym100971G Gym100971K Gym100971L(都是好写的题。。。) IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13, 2016
昨天训练打的Gym,今天写题解. Gym100971B 这个题就是输出的时候有点小问题,其他的都很简单. 总之,emnnn,简单题. 代码: #include<iostream> #inc ...
- IX Samara Regional Intercollegiate Programming Contest F 三分
F. Two Points time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Codeforces Gym100971 L.Chess Match (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是两个队,看最多能赢的个数,然后比较一下,看两个队是都能赢彼此,还是只有一个队赢的可能性最大.表达能力不好,意思差不多... 和田忌赛马有点像,emnnn,嗯. 代码: 1 #include& ...
- Codeforces Gym100971 K.Palindromization-回文串 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是从字符串中删除一个字符,然后剩下的是回文串. 我写的代码虽然长得好看,但是循环里面的比较条件容易想错,太智障了... 一开始写的是计数比较,但是有的时候下标相同的也比较了,为了简单一些,直接 ...
- Codeforces Gym100971 G.Repair-思维题(切矩形板子) (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是一块大板子,问你能不能切成两块要求的长宽的两块板子,一开始是按切板子想的,感觉有点麻烦. 直接反过来想,把两块要求的板子拼起来,填成一个大板子,看填出来的这个板子和题目给的板子比较,小于等于 ...
- Codeforces Gym100971 F.Two Points (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题直接推公式就可以. 就是解一元二次方程,用高中学的公式,函数开口向上,求最大值为(4ac-b*b)/4a. 这个题推出来一元二次方程,然后将最大值的公式化简一下.公式很好推. 这个题有疑问,in ...
随机推荐
- (十二)random模块
大致有以下几个函数: print(random.random()) #0到1的浮点型 print(random.randint(1,6)) #1到6的整型 print(random.randrange ...
- 【Spring】Spring中的Bean - 5、Bean的装配方式(XML、注解(Annotation)、自动装配)
Bean的装配方式 简单记录-Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-Spring中的Bean 文章目录 Bean的装配方式 基于XML的装配 基于注解 ...
- XSS - Pikachu
概述: Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型 ...
- uni-app开发经验分享十八:对接第三方h5
1.uni-app中对接第三方为了防止跳出app使用了webview <template> <view> <web-view :src="url" @ ...
- js 浮点数陷阱
众所周知,JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果,如 0.1+0.2=0.30000000000000004.1-0.9=0. ...
- 扩展PE头属性说明
CRC检测的算法就是checksum 以下是DllCharacteristics的参数说明
- What is :: (double colon) in Python when subscripting sequences?
What is :: (double colon) in Python when subscripting sequences? 15 Extended Slices https://docs.pyt ...
- v-show和v-if指令的共同点和不同点?
共同点:都能控制元素的显示和隐藏:不同点:实现本质方法不同,v-show本质就是通过控制css中的display设置为none,控制隐藏,只会编译一次:v-if是动态的向DOM树内添加或者删除DOM元 ...
- 编写高性能Java代码的最佳实践
博客地址: http://blog.csdn.net/dev_csdn/article/details/79033972
- Jenkins (1、自动化发布war包、2、自动化发布nodejs)
1.持续集成javaweb 首先咱们需要安装一个 Jenkins,这个就不必多说了,晚上一搜索一大把,然后安装各种插件,配置各种环境变量, 今天我的实验环境是 使用Jenkins 拉取gitlap上项 ...