Codeforces Round #575 (Div. 3)
本蒟蒻已经掉到灰名了(菜到落泪),希望这次打完能重回绿名吧......
这次赛中A了三题
下面是本蒟蒻的题解
A.Three Piles of Candies
这题没啥好说的,相加除2就完事了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll q;
scanf("%lld",&q);
while(q--)
{
ll a,b,c;
scanf("%lld %lld %lld",&a,&b,&c);
printf("%lld\n",(a+b+c)/);
}
return ;
}
B.Odd Sum Segments
题意大概就是把长度为n的数组分成k段,每段的总和为奇数,若可以则输出YES和和每段的右边界,否则输出NO。
偶数对结果没有影响,所以只用考虑奇数。记录奇数的个数,只要每段中含有奇数个奇数就行。
那么往前面的k-1段中各放一个奇数,再把剩下的奇数放在最后一段,判断最后一段中的奇数个数是否为奇数,判断后打印前面的奇数位置和n即可。(讲的不太清楚...)
代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=1e6+;
ll a[maxn];
int main() {
ll q;
scanf("%lld",&q);
while(q--) {
ll n,k;
scanf("%lld %lld",&n,&k);
ll cnt=;
for(ll i=; i<=n; i++) {
scanf("%lld",&a[i]);
if(a[i]%==)
cnt++;
}
if(cnt>=k&&(cnt-(k-))%==/*判断最后一堆中的奇数个数是否为偶数*/) {
printf("YES\n");
ll cnt2=;
for(ll i=; i<=n; i++) {
if(cnt2>=k-)break;
if(a[i]%==) {
printf("%lld ",i);
cnt2++;
}
}
printf("%lld\n",n);
} else
printf("NO\n"); }
return ;
}
C.Robot Breakout
大概就是纯模拟吧,对于每个机器人,记录它能到达的x,y的上下界,然后取个交集,输出交集的左边界。
代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=1e5+;
const ll INF=1e5;
ll a[maxn][];//储存可达状态 ,a[i][0]为x的下界,a[i][1]为x的上界,a[i][2]为y的下界,a[i][3]为y的上界
int main()
{
ll q;
scanf("%lld",&q);
while(q--)
{
ll n,x,y,f1,f2,f3,f4;
scanf("%lld",&n);
for(ll i=;i<=n;i++)
{
scanf("%lld%lld%lld%lld%lld%lld",&x,&y,&f1,&f2,&f3,&f4);
a[i][]=a[i][]=x;//上下界都标记为x
a[i][]=a[i][]=y;//同理
if(f1)a[i][]=-INF;
if(f2)a[i][]=INF;
if(f3)a[i][]=INF;
if(f4)a[i][]=-INF;
}
/*for(int i=1;i<=n;i++)
{
cout<<a[i][0]<<" "<<a[i][1]<<" "<<a[i][2]<<" "<<a[i][3]<<endl;
}*/
ll xmax=INF,xmin=-INF,ymax=INF,ymin=-INF;
bool flag =true;
for(ll i=;i<=n;i++)
{
if(a[i][]>xmax||a[i][]<xmin||a[i][]>ymax||a[i][]<ymin)
{
printf("0\n");
flag=false;
break;
}
if(xmax>a[i][])xmax=a[i][];
if(xmin<a[i][])xmin=a[i][];
if(ymax>a[i][])ymax=a[i][];
if(ymin<a[i][])ymin=a[i][];
}
if(flag)
{
printf("1 %lld %lld\n",xmin,ymin);
} }
return ;
}
后面的题目赛中没做出来(果然还是我太菜了555)
下午补了题晚上再把个人的题解放上来
---------------------------------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------------------------------------------
又颓了一整天5555
晚上补了昨晚cf的D题
发现D1还是很好写的嘛,随便暴力写都能过(毕竟数据小),昨天赛中的时候还把他想成了LCS,还想套模板233333
D2数据大了我的暴力写法直接TLE了,想了半天没办法看了题解。题解的写法是真的优雅。
下面贴出来我的代码(无脑写)和题解的代码(题解的我写了点注释方便理解)。
D1.RGB Substring (easy version)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=1e6+;
int main()
{
ll q;
scanf("%lld",&q);
while(q--)
{
ll n,k;
scanf("%lld %lld",&n,&k);
string s;
cin>>s;
ll mi=maxn;
for(int i=;i<=n-k;i++)
{
ll cnt1=,cnt2=,cnt3=;
string b=s.substr(i,k);
for(int i=;i<b.length();i++)
{
if((i%==&&b[i]=='R')||(i%==&&b[i]=='G')||(i%==&&b[i]=='B'))
{
cnt2++;
cnt3++;
}
if((i%==&&b[i]=='G')||(i%==&&b[i]=='B')||(i%==&&b[i]=='R'))
{
cnt1++;
cnt3++;
}
if((i%==&&b[i]=='B')||(i%==&&b[i]=='R')||(i%==&&b[i]=='G'))
{
cnt1++;
cnt2++;
} }
if(mi>min(cnt1,min(cnt2,cnt3)))
{
mi=min(cnt1,min(cnt2,cnt3));
} }
printf("%lld\n",mi); }
return ; }
D2.RGB Substring (hard version)
题解真的tql
#include <bits/stdc++.h>
using namespace std;
int main() {
//#ifdef _DEBUG
//freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
//#endif
const string t = "RGB";
int q;
cin >> q;
for (int i = ; i < q; ++i) {
int n, k;
string s;
cin >> n >> k >> s;
int ans = 1e9;
for (int offset = ; offset < ; ++offset) {
vector<int> res(n);
int cur = ;
for (int j = ; j < n; ++j) {
res[j] = (s[j] != t[(j + offset) % ]);//对应的若不相同
cur += res[j];//cur是当前的需要改变的字母数量
if (j >= k) cur -= res[j - k];// 若j>=k则把当前的cur减去res[j-k](因为此时这个位置与要计算的位置不在同个字串)
if (j >= k - ) ans = min(ans, cur);/
}
}
cout << ans << endl;
}
return ;
}
不能颓废啊啊啊啊啊啊啊啊
好好休息好好补知识点!!!
E和F题不打算补了,接下来去学DFS和BFS了,之前稍微了解了一下做了一两道题发现还是不熟练,得多刷点题。
ok那这篇随笔就这样吧。
PS:我永远喜欢远坂凛
Codeforces Round #575 (Div. 3)的更多相关文章
- Codeforces Round #575 (Div. 3) 昨天的div3 补题
Codeforces Round #575 (Div. 3) 这个div3打的太差了,心态都崩了. B. Odd Sum Segments B 题我就想了很久,这个题目我是找的奇数的个数,因为奇数想分 ...
- Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 水题
D2. RGB Substring (hard version) inputstandard input outputstandard output The only difference betwe ...
- Codeforces Round #575 (Div. 3) E. Connected Component on a Chessboard(思维,构造)
E. Connected Component on a Chessboard time limit per test2 seconds memory limit per test256 megabyt ...
- Codeforces Round #575 (Div. 3) D1+D2. RGB Substring (easy version) D2. RGB Substring (hard version) (思维,枚举,前缀和)
D1. RGB Substring (easy version) time limit per test2 seconds memory limit per test256 megabytes inp ...
- Codeforces Round #575 (Div. 3) C. Robot Breakout (模拟,实现)
C. Robot Breakout time limit per test3 seconds memory limit per test256 megabytes inputstandard inpu ...
- Codeforces Round #575 (Div. 3) B. Odd Sum Segments (构造,数学)
B. Odd Sum Segments time limit per test3 seconds memory limit per test256 megabytes inputstandard in ...
- Codeforces Round #575 (Div. 3) (A. Three Piles of Candies)(数学)
A. Three Piles of Candies time limit per test1 second memory limit per test256 megabytes inputstanda ...
- Codeforces Round #575 (Div. 3) 题解
比赛链接:https://codeforc.es/contest/1196 A. Three Piles of Candies 题意:两个人分三堆糖果,两个人先各拿一堆,然后剩下一堆随意分配,使两个人 ...
- Codeforces Round #575 (Div. 3) B. Odd Sum Segments 、C Robot Breakout
传送门 B题题意: 给你n个数,让你把这n个数分成k个段(不能随意调动元素位置).你需要保证这k个段里面所有元素加起来的和是一个奇数.问可不可以这样划分成功.如果可以打印YES,之后打印出来是从哪里开 ...
随机推荐
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
- iOS组件化开发一使用source管理远端库升级(四)
一.克隆远端库代码到本地选择master分支 1.克隆 2.代码会显示出你所有版本的tag 二.可以在Example目录下验证代码的正确行: cd 到库的文件夹然后 pod install comma ...
- lleetcode 1 two sum c++
Problem describe:https://leetcode.com/problems/two-sum/ Given an array of integers, return indices o ...
- 给即将或刚进入it行业的朋友的参考--体育生转行到Java的经历
首先声明,不喜勿喷我这个历经千辛万苦转入Java行业的人.相信很多正在学校中迷茫和在毕业后对于现状不满意的朋友通过各种的渠道进行信息汇总,了解了软件行业的高工资和多机会,正摩拳擦掌准备在这个领域大干一 ...
- MySQL Explain查看执行计划
这篇博客写的还是蛮全的 http://www.cnblogs.com/songwenjie/p/9409852.html 在执行SQL的时候,经常有些SQL未正确使用到索引,导致程序变慢,通过使用ex ...
- 第九章 webase 分布式中间件平台快速部署
鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 参考资料:https://webasedoc.r ...
- 20141126-传智播客.NET3.3版
- py+selenium 自动判断页面是否报错并显示在自动化测试报告【原创】
有需求就会去研究解决的路子. 现在需求就是,测试报告报错信息一堆,但却无法肉眼看出是什么问题,你只能知道定位不到元素或是超时,但你却不知道其实进入页面就报错了或是提交表单就报错了!也就是看到报错,需要 ...
- [记录]NGINX配置HTTPS性能优化方案一则
NGINX配置HTTPS性能优化方案一则: 1)HSTS的合理使用 2)会话恢复的合理使用 3)Ocsp stapling的合理使用 4)TLS协议的合理配置 5)False Start的合理使用 6 ...
- xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突(当指针访问异常时,应考虑是不是对象未创建)。
xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突