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

这次赛中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. 并发编程-concurrent指南-阻塞队列-同步队列SynchronousQueue

    SynchronousQueue:同步Queue,属于线程安全的BlockingQueue的一种,此队列设计的理念类似于"单工模式",对于每个put/offer操作,必须等待一个t ...

  2. ZooKeeper入门(一)

    1 基本概念 1.1 什么是ZooKeeper zookeeper是为分布式应用所设计的高可用.高性能且一致的开源协调服务 1.2 Zookeeper的特点 顺序一致性 原子性 单一视图 可靠性 实时 ...

  3. Codeforces Gym101246C:Explode 'Em All(DP + bitset)

    http://codeforces.com/gym/101246/problem/C 题意:给出一个n*m的图,“*”表示这个地方需要炸掉,炸弹可以如果丢在(i,j)位置的话,那么可以炸掉第i行第j列 ...

  4. HDU 1811:Rank of Tetris(并查集+拓扑排序)

    http://acm.hdu.edu.cn/showproblem.php?pid=1811 Rank of Tetris Problem Description   自从Lele开发了Rating系 ...

  5. 个人亲测,在win10系统下安装多实例mysql8.0详细教程

    由于公司的新项目需要导入sql脚本,需要更高版本的mysql数据库,原来的数据库我也不想删除和升级,因此安装了第二个mysql8的实例,废话不多说,步骤如下: 1.下载mysqlGPL版本,我下载的版 ...

  6. kubernetes安装部署-day01

    一.基础环境的准备: 1.1.安装docker: docker的官网是:https://www.docker.com/ 1.1.1.rpm包安装: 官方下载地址:https://download.do ...

  7. tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)

    #### tomcat配置https 准备工作 下载好证书文件,下载的时候可以选择为tomcat文件.我这下载下来是压缩包.解压后就是下图的样子. 以.key结尾的文件是证书的key 以.pem结尾的 ...

  8. nu.xom:Attribute

    Attribute: 机翻 Attribute copy():生成一份当前Attribute的拷贝,但是它没有依附任何Element Node getChild(int position) :因为At ...

  9. ElasticSearch7.2安装

    1.环境 Java -version:java11 centos: 7.2 elasticsearch: 7.2 2.获取压缩包 wget https://artifacts.elastic.co/d ...

  10. 5G VS WiFi6,实力大比拼!

    移动通信与WiFi,就像移动设备上的两大高手.彼此势均力敌:一个主室内,一个主室外.WiFi是移动网络的室内覆盖补充,也承担着大量的数据流量卸载,二者既想各自占山为王,但也时不时地相互成全对方. 然而 ...