Codeforces Round #617 (Div. 3) 补题记录
1296A - Array with Odd Sum
题意:可以改变数组中的一个数的值成另外一个数组中的数,问能不能使数组的和是个奇数
思路:签到,如果本来数组的和就是个奇数,那就OK
如果不是,就需要把数组中其中一个奇(偶)数改成偶(奇)数,相当于加一减一
所以测一下这个数组如果有个奇数并且还有个偶数就行
#include <cstdio>
#include <iostream>
#include <map>
#include <set>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int num[];
int main ()
{
int t,n,flag=;
scanf("%d",&t);
while (t--)
{
int all=;
int a1=,a2=;
scanf("%d",&n);
for (int i=;i<n;i++)
{
scanf("%d",&num[i]);
all=all+num[i];
if (num[i]%==)
a1=;
if (num[i]%==)
a2=;
}
if (all%==)
printf("YES\n");
else
{
if (a1&&a2)
printf("YES\n");
else
printf("NO\n");
}
}
return ;
}
1296B - Food Buying
题意:你有一些钱,每花10块可以反1块,最多能花多少?
思路:相当于9块值10块了,但如果直接输出/9*10就WA
因为只有9块的情况下是不能返钱的,记一下就行
#include <cstdio>
#include <iostream>
#include <map>
#include <set>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int main ()
{
int t,n;
scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
long long all=(n/)*;
if (n%==)
printf("%d\n",all+n%-);
else
printf("%d\n",all+n%);
}
return ;
}
1296C - Yet Another Walking Robot
题意:有一个机器人,有一个字符串,机器人按照字符串里的字母移动
问能不能去掉一个最小的连续区间,使得机器人最终到达的目的地相同?
思路:我这个是真的没想出来,看题解之后才发现,只要有两次到了相同的地方,那么机器人在中间走的一段路就是多余的
再用一个map来储存经过的点,可以用map来检测是否经过同一个点,这样就行了
但是自己写的时候总是各种玄学问题,自定义的结构体放map里无法编译...改成pair之后cf又出个WA...最后改的和题解差不多才过...
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while (t--)
{
int n;
char s;
cin>>n;
int l=-,r=n;
map<pair<int, int>,int> mm;
pair<int, int> cur={, };
mm[cur]=;
for (int i=;i<n;++i)
{
cin>>s;
if (s=='L')
--cur.first;
if (s=='R')
++cur.first;
if (s=='U')
++cur.second;
if (s=='D')
--cur.second;
if (mm.count(cur))
{
if (i-mm[cur]+<r-l+)
{
l=mm[cur];
r=i;
}
}
mm[cur]=i+;
}
if (l==-)
cout<<-<<endl;
else
cout<<l+<<" "<<r+<<endl;
}
return ;
}
1296D - Fight with Monsters
题意:你和你的对手去打怪,按着顺序从小怪1一直到小怪n
这样打怪:你先打一下,你对手再打一下,如果在你打的时候怪死了,你得一分,你对手打的时候怪死了不得分,但是你还有几次机会可以让你的对手这次不出招,问你最多能得多少分?
思路 :好不容易除了签到又做了一道简单题...
首先,先计算在最后一轮中(也就是你和你对手都打一下这怪就死了的那一次)小怪的血量。
假如说你这次攻击能直接把怪打死,那ok,设这个怪的.ci=-1
如果不能,还是要你先打一次,然后算要让对手不出招多少次才能打死这只小怪,记到ci里
最后对所有小怪按击倒所需次数排序,遍历一遍就Ok
#include <bits/stdc++.h>
using namespace std;
struct mons
{
int ci;
int hp;
};
bool cmp (mons a,mons b)
{
return a.ci<b.ci;
}
mons mon[];
int main ()
{
int n,a,b,k,tem,fin=,i;
scanf("%d %d %d %d",&n,&a,&b,&k);
int all=a+b;
for (i=;i<n;i++)
{
scanf("%d",&tem);
mon[i].hp=tem%all;
if (mon[i].hp==)
mon[i].hp=all;
if (mon[i].hp<=a)
mon[i].ci=-;
else
{
mon[i].hp=mon[i].hp-a;
if (mon[i].hp%a==)
mon[i].ci=mon[i].hp/a;
else
mon[i].ci=mon[i].hp/a+;
}
}
sort(mon,mon+n,cmp);
for (int i=;i<n;i++)
{
if (mon[i].ci==-)
fin++;
else
{
if (k-mon[i].ci>=)
{
k=k-mon[i].ci;
fin++;
}
}
}
printf("%d\n",fin);
return ;
}
Codeforces Round #617 (Div. 3) 补题记录的更多相关文章
- Codeforces Round #786 (Div. 3) 补题记录
小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...
- Codeforces Round #615 (Div. 3) 补题记录
第一次搞CF,结果惨不忍睹...还是太菜了 A:要用到全部的钱,所以总数必须是3的倍数,而且初始状态下任意一人的钱数不能超过总数除以3,否则没法分了 (也就这个签到算是在我能力范围之内了....) # ...
- Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring
D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Codeforces Round #585 (Div. 2) [补题]
前言 2019.9.16 昨天下午就看了看D题,没有写对,因为要补作业,快点下机了,这周争取把题补完. 2019.9.17 这篇文章或者其他文章难免有错别字不被察觉,请读者还是要根据意思来读,不要纠结 ...
- Codeforces Round #429 (Div. 2) 补题
A. Generous Kefa 题意:n个气球分给k个人,问每个人能否拿到的气球都不一样 解法:显然当某种气球的个数大于K的话,就GG了. #include <bits/stdc++.h> ...
- Codeforces Round #419 (Div. 1) 补题 CF 815 A-E
A-C传送门 D Karen and Cards 技巧性很强的一道二分优化题 题意很简单 给定n个三元组,和三个维度的上限,问存在多少三元组,使得对于给定的n个三元组中的每一个,必有两个维度严格小于. ...
- Codeforces Round #590 (Div. 3)补题
要想上2000分,先刷几百道2000+的题再说 ---某神 题目 E F 赛时是否尝试 × × tag math bitmask 难度 2000 2400 状态 ∅ √ 解 E 待定 F 传送门 第一 ...
- Codeforces Round #574 (Div. 2)补题
A. Drinks Choosing 统计每种酒有多少人偏爱他们. ki 为每种酒的偏爱人数. 输出ans = (n + 1)/2 > Σki / 2 ? (n + 1)/2 - Σki / ...
- Codeforces Round #378 (Div. 2) D题(data structure)解题报告
题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...
随机推荐
- OpenCV3入门(九)图像几何变换
1.图像缩放 假设图像x轴的缩放因子Sx, y轴方向的缩放因子Sy,相应的变换表达式为: 函数原型为: CV_EXPORTS_W void resize( InputArray src, Output ...
- 浅谈Go语言的Goroutine和协程
0x00.前言 前面写了一篇初识Go语言和大家一起学习了Go语言的巨大潜力.语言简史.杀手锏特性等,感兴趣的读者可以回顾一下. 今天来学习Go语言的Goroutine机制,这也可能是Go语言最为吸引人 ...
- centos7利用系统镜像修复grub
1 故障描述 由于错误操作,导致grub配置文件失效,系统开机后一直卡在下面的画面. 2 解决办法 这时候,就要利用系统镜像光盘,进入修复模式,然后按下面图示操作 进入镜像的shell环境,如下图所示 ...
- js 常用总结
1.截取字符串 var a="/s/d"; console.log(a.substr(0,a.indexOf("/",1))) // 得到/s 2. // ...
- Winfrom 减少控件重绘闪烁的方法
Winform控件的双缓冲.控件的双缓冲属性是隐藏的,可以通过反射改变其属性值. lv.GetType().GetProperty("DoubleBuffered", Bindin ...
- VSTO开发指南(VB2013版) 第四章 Excel编程
实例1:处理NewWorkbook和WorkSheet事件的控制台程序 书本第70页 程序清单 4.1 处理NewWorkbook和WorkSheet事件的控制台程序 Imports Excel = ...
- OpenLayers要素拖拽
//拖拽要素 function dragFeature (_map,_dragEndCallback) { let selFeature = null; _map.on("pointerdr ...
- 限制input输入框只能输入 数字
<input type="text" oninput = "value=value.replace(/[^\d]/g,'')">
- markdown语法链接新页面打开
我们在写markdown语法的文章时,经常会写超链接,默认markdown的写法超链接打开页面都是在当前页面,对自己页面的访问不是很好,所以我们一般都希望在新页面打开.但是据我对markdwon的语法 ...
- R语言矩阵维度“消失”的问题
矩阵(matrix)是R语言中很基础的一种数据结构,也是R语言使用者经常使用的一种数据结构.矩阵的维度一般为二维(m*n). R语言中矩阵的操作是非常简单易懂的,但是在对R语言做矩阵操作时,有个地方需 ...