本蒟蒻已经掉到灰名了(菜到落泪),希望这次打完能重回绿名吧......

这次赛中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)的更多相关文章

  1. Codeforces Round #575 (Div. 3) 昨天的div3 补题

    Codeforces Round #575 (Div. 3) 这个div3打的太差了,心态都崩了. B. Odd Sum Segments B 题我就想了很久,这个题目我是找的奇数的个数,因为奇数想分 ...

  2. Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 水题

    D2. RGB Substring (hard version) inputstandard input outputstandard output The only difference betwe ...

  3. 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 ...

  4. 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 ...

  5. Codeforces Round #575 (Div. 3) C. Robot Breakout (模拟,实现)

    C. Robot Breakout time limit per test3 seconds memory limit per test256 megabytes inputstandard inpu ...

  6. 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 ...

  7. 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 ...

  8. Codeforces Round #575 (Div. 3) 题解

    比赛链接:https://codeforc.es/contest/1196 A. Three Piles of Candies 题意:两个人分三堆糖果,两个人先各拿一堆,然后剩下一堆随意分配,使两个人 ...

  9. Codeforces Round #575 (Div. 3) B. Odd Sum Segments 、C Robot Breakout

    传送门 B题题意: 给你n个数,让你把这n个数分成k个段(不能随意调动元素位置).你需要保证这k个段里面所有元素加起来的和是一个奇数.问可不可以这样划分成功.如果可以打印YES,之后打印出来是从哪里开 ...

随机推荐

  1. 设计模式-观察者模式(Observer)

    观察者模式是行为模式的一种,它的作用是当一个对象的状态发生变化时,能够自动通知关联对象,自动刷新对象状态. 观察者模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步. ...

  2. Facebook也炒币吗?Libra币是什么?

    Facebook 在上周发布了加密数字货币,称为 Libra币. 太火爆了,很多人都在关注和讨论,包括一些科技大佬们都很积极的讨论(当然,这里指的是真正的科技大佬,比如 马化腾.王兴等,而不是指哪些割 ...

  3. POJ 3321:Apple Tree + HDU 3887:Counting Offspring(DFS序+树状数组)

    http://poj.org/problem?id=3321 http://acm.hdu.edu.cn/showproblem.php?pid=3887 POJ 3321: 题意:给出一棵根节点为1 ...

  4. 【无线安全实践入门】网络扫描和ARP欺骗

    文中可能存在错误操作或错误理解,望大家不吝指正. 同时也希望可以帮助到想要学习接触此方面.或兴趣使然的你,让你有个大概的印象. !阅前须知! 本文是基于我几年前的一本笔记本,上面记录了我学习网络基础时 ...

  5. 探寻 webpack_bundle_analyzer 原理

    webpack_bundle_analyzer 是什么? 这是webpack官方出品的,对项目中模块依赖关系及体积的分析插件,其界面如下: 问题来了,这是如何来进行统计的? 这里提供一个插件的代码,可 ...

  6. Java内部类你真的会吗?

    一.四种内部类 1.1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: public class OuterAndInnerClass { public sta ...

  7. Ubuntu搭建hugo博客

    自己搭建了一个博客用hugo,后因自己搭建的博客上传文章,搞一些东西不方便,就创建了现在这个博客,不过还是把如何搭建hugo的过程记录以下. Ubuntu下的操作 1. 下载Git 打开终端 Ctrl ...

  8. 洛谷P3275 [SCOI2011]糖果 题解

    题目链接: https://www.luogu.org/problemnew/show/P3275 分析: 本题就是一个裸的差分约束. 核心: x=1x=1x=1时,a=b,a−>b,b−> ...

  9. spark 源码分析之十七 -- Spark磁盘存储剖析

    上篇文章 spark 源码分析之十六 -- Spark内存存储剖析 主要剖析了Spark 的内存存储.本篇文章主要剖析磁盘存储. 总述 磁盘存储相对比较简单,相关的类关系图如下: 我们先从依赖类 Di ...

  10. Excel催化剂开源第4波-ClickOnce部署要点之导入数字证书及创建EXCEL信任文件夹

    Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首 ...