Codeforces Round #606 Div. 2 比赛总结
比赛情况
bq. A题 Wrong Answer on test 2 , E题sb题没切。bqbqbq.
比赛总结
bq.
那就直接上题解吧!-
A
数位dp,分类讨论,注意细节。
Talk is cheap.Show me the code.
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
int n,m,ans,L;
void work() {
n = read(), ans = 0;
L = 0, m = n;
while(m/10) ++L, m /= 10;
ans += L * 9;
L = 1, m = n;
while(m/10) L = (L*10)+1, m /= 10;
ans += n/L;
printf("%d\n",ans);
}
int main()
{
int T = read();
while(T--) work();
return 0;
}
B
我们把数值一样的数放在一起,扔进堆里。按数值从大到小处理就OK了。
注意值域比较大,用一下 \(STL\) 里面的 map。
Talk is cheap.Show me the code.
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
const int N = 2e5+7;
int n;
int a[N];
void work() {
map<int,int> s;
priority_queue<int> q;
n = read(); int ans = 0;
for(int i=1;i<=n;++i) {
a[i] = read();
if(s[a[i]]==0) {
q.push(a[i]);
}
++s[a[i]];
}
while(!q.empty()) {
int now = q.top(); q.pop();
if(now&1) continue;
if(s[now/2]==0) q.push(now/2);
s[now/2] += s[now]; ans++;
//printf("ans += s[%d], s[now]=%d\n",now,s[now]);
}
printf("%d\n",ans);
}
int main()
{
//freopen("a.out","w",stdout);
int T = read();
while(T--) work();
return 0;
}
C
贪心题。
如果有 twone 则删去 'o',否则删去中间这个,比如 one 删去 'n'。这样是对的。
然后模拟即可。
Talk is cheap.Show me the code.
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
void work() {
string s; cin>>s; vector<int> Ans;
for(int i=1;i<s.length();++i) {
char a = s[i-1], b = s[i], c = s[i+1];
if(a=='t' && b=='w' && c=='o') {
if(s[i+2]=='n' && s[i+3]=='e') s[i+1] = '-', Ans.push_back(i+1)/*, i = i+3+1*/;
else s[i] = '-', Ans.push_back(i)/*, i = i+1+1*/;
} else if(a=='o' && b=='n' && c=='e') {
Ans.push_back(i);
}
}
printf("%d\n",(int)Ans.size());
for(int i=0;i<Ans.size();++i) printf("%d ",Ans[i]+1);
puts("");
}
int main()
{
//freopen("a.out","w",stdout);
int T = read();
while(T--) work();
return 0;
}
D
待补坑。
E
炒鸡简单
考虑一张下面这样的图:

答案不就是两个蓝色部分的大小相乘吗?(题目不考虑A,B两点)
这不就是Dfs的事吗qwq
(其实如果这两块蓝色的有边将他们连起来了就是 puts("0"))
Talk is cheap.Show me the code.
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
const int N = 2e5+7, M = 5e5+7;
int n,m,a,b,cnt,flag,tot;
int head[N],vis[N];
struct Edge {
int next,to;
}edge[M<<1];
inline void add(int u,int v) {
edge[++cnt] = (Edge)<%head[u],v%>;
head[u] = cnt;
}
void Dfs(int u,int F) {
flag |= (u==F); vis[u] = 1; ++tot;
for(int i=head[u];i;i=edge[i].next) {
int v = edge[i].to;
if(!vis[v]) Dfs(v,F);
}
}
void work() {
memset(head, 0, sizeof(head)); cnt = flag = 0;
n = read(), m = read(), a = read(), b = read();
for(int i=1,u,v;i<=m;++i) {
u = read(), v = read();
add(u,v), add(v,u);
}
memset(vis, 0, sizeof(vis));
vis[a] = 1; int n1 = 0, n2 = 0, nxt = 0;
for(int i=head[a];i;i=edge[i].next) {
int v = edge[i].to; tot = 0; Dfs(v,b);
if(flag) {
n1 = n - tot - 1; break;
}
}
memset(vis, 0, sizeof(vis));
vis[b] = 1; flag = 0;
for(int i=head[b];i;i=edge[i].next) {
int v = edge[i].to; tot = 0; Dfs(v,a);
if(flag) {
n2 = n - tot - 1; break;
}
}
printf("%lld\n",(long long)(1ll*n1*n2));
}
int main()
{
int T = read();
while(T--) work();
return 0;
}
F
待补坑。
Codeforces Round #606 Div. 2 比赛总结的更多相关文章
- 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...
- Codeforces Round #606 (Div. 1) Solution
从这里开始 比赛目录 我菜爆了. Problem A As Simple as One and Two 我会 AC 自动机上 dp. one 和 two 删掉中间的字符,twone 删掉中间的 o. ...
- Codeforces Round #605 (Div. 3) 比赛总结
比赛情况 2h才刀了A,B,C,D.E题的套路做的少,不过ygt大佬给我讲完思路后赛后2min就AC了这题. 比赛总结 比赛时不用担心"时间短,要做多快",这样会匆匆忙忙,反而会做 ...
- 20191214 Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
概述 切了 ABCE,Room83 第一 还行吧 A - Happy Birthday, Polycarp! 题解 显然这样的数不会很多. 于是可以通过构造法,直接求出 \([1,10^9]\) 内所 ...
- Codeforces Round #606 (Div. 2)
传送门 A. Happy Birthday, Polycarp! 签到. Code /* * Author: heyuhhh * Created Time: 2019/12/14 19:07:57 * ...
- Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
链接 签到题,求出位数,然后9*(位数-1)+ 从位数相同的全一开始加看能加几次的个数 #include<bits/stdc++.h> using namespace std; int m ...
- Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) 题解
Happy Birthday, Polycarp! Make Them Odd As Simple as One and Two Let's Play the Words? Two Fairs Bea ...
- Codeforces Round #606 (Div. 2) E - Two Fairs(DFS,反向思维)
- Codeforces Round #606 (Div. 2) D - Let's Play the Words?(贪心+map)
随机推荐
- redis详解及应用(雪崩、击穿、穿透)
一. redis的简介与安装 引用:https://www.cnblogs.com/ysocean/tag/Redis%E8%AF%A6%E8%A7%A3/ 二. redis的配置文件介绍 引用:ht ...
- kernel function
下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...
- 新增存储用Parted分区并建LVM卷
新增存储用Parted分区并建LVM卷 一,Parted分区 1,parted分区 www.ahlinux.com # parted /dev/sda GNU Parted 2.1 使用 /dev/ ...
- Private Variable
Any variable defined inside a function is considered private since it is inaccessable outside that f ...
- 剑指Offer总结——用两个栈实现队列
class Solution { public: void push(int node) { stack2.push(node); } int pop() { if(stack1.empty()){ ...
- pip提示ModuleNotFoundError: No module named 'pkg_resources'
卸载setuptools后,pip下载python包一直提示ModuleNotFoundError: No module named 'pkg_resources',如下图: 在网上找了很多贴了都无法 ...
- 应用安全 - 社工 - By 大数据 - shodan - 汇总
使用 | 命令 搜索语法 hostname: 搜索指定的主机或域名,例如 hostname:”google” port: 搜索指定的端口或服务,例如 port:”” country: 搜索指定的国家, ...
- deepin下安装Qt5&以及部分问题解决
deepin安装Qt5 1 deepin商店里的Qt5版本太低,可以直接下载官方的Qt5安装包: 官方下载渠道:http://www.qt.io/download-open-source/ 离线镜像下 ...
- 搭建属于自己的图床(基于阿里云OSS,成本9元+20分钟)
之前的笔记都存在有道云笔记上,慢慢转化为Markdown格式分享出来,这中间遇到了一个图片问题,找了好久,了解到图床,然后找了谷歌插件中微博图床插件,用了一段时间发现,每次都需要登录微博,然后我又是一 ...
- 【转】mysql卸载(windows)
作者:cxy_Summer 来源:CSDN 原文:https://blog.csdn.net/cxy_Summer/article/details/70142322 版权声明:本文为博主原创文章,转载 ...