概述

切了 ABCE,Room83 第一

还行吧


A - Happy Birthday, Polycarp!

题解

显然这样的数不会很多。

于是可以通过构造法,直接求出 \([1,10^9]\) 内所有符合要求的数。

\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; int a[]={1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,111,222,333,444,555,666,777,888,999,1111,2222,3333,4444,5555,6666,7777,8888,9999,11111,22222,33333,44444,55555,66666,77777,88888,99999,111111,222222,333333,444444,555555,666666,777777,888888,999999,1111111,2222222,3333333,4444444,5555555,6666666,7777777,8888888,9999999,11111111,22222222,33333333,44444444,55555555,66666666,77777777,88888888,99999999,111111111,222222222,333333333,444444444,555555555,666666666,777777777,888888888,999999999,1000000001}; int T,n; int main(){
cin>>T;
while(T--){
cin>>n;int ans=0;
for(int i=1;a[i]<=n;i++) ++ans;
cout<<ans+1<<endl;
}
return 0;
}

B - Make Them Odd

题解

显然每次从最大的数进行处理最划算。

于是用个优先队列存储所有的数,用 map 记录这个数是否还要付出代价即可。

\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; const int maxn=2000007; int T,n;
int a[maxn];
int b[maxn],t[maxn];
int m;
map<int,bool>mp; #define pii(x,y) make_pair(x,y)
priority_queue < int>q;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n);mp.clear();
int ans=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
q.push(a[i]);
}
while(q.size()){
int x=q.top();//x=-x;
q.pop();
if(x&1) continue;
if(mp[x]) continue;
++ans;mp[x]=1;
q.push(x/2);
}
printf("%d\n",ans);
}
}

C - As Simple as One and Two

题解

这种题目 WA 了一次 pretest ,说明我水平低下。

twoone 放在一起是非常美妙的字符串。

如果有子串 twone ,显然删去中间的 o 最优。

再处理 twoone ,为了不造成新的这样的串,删掉中间的 wn

\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; const int maxn=150007; int T,val[maxn];
char s[maxn]; int ans[maxn],cnt; int main(){
scanf("%d",&T);
while(T--){
scanf("%s",s+1);
int len=strlen(s+1);cnt=0;
memset(val,0,sizeof(val));
for(int i=1;i+4<=len;i++){
if(s[i]=='t'&&s[i+1]=='w'&&s[i+2]=='o'&&s[i+3]=='n'&&s[i+4]=='e'){
ans[++cnt]=i+2;
s[i+2]=' ';
}
}
for(int i=1;i+2<=len;i++){
if(s[i]=='o'&&s[i+1]=='n'&&s[i+2]=='e'){
ans[++cnt]=i+1;s[i+1]=' ';
}
if(s[i]=='t'&&s[i+1]=='w'&&s[i+2]=='o'){
ans[++cnt]=i+1;s[i+1]=' ';
}
}
printf("%d\n",cnt);
for(int i=1;i<=cnt;i++){
printf("%d ",ans[i]);
}
puts("");
}
}

E - Two Fairs

题解

这种傻逼题花了一个小时还 WA 了一次 pretest,说明我水平低下。

扫一遍,并查集一下就行了。

神仙 zzk 有两次 bfs 的做法?

\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; const int maxn=200007;
const int maxm=1000007; int T;
int n,m,a,b; #define pii(x,y) make_pair(x,y) vector <pair<int,int> >e; int cnt; int f[maxn]; set<int>A,B; void clear(void){
e.clear();
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++) f[i]=i;
A.clear();B.clear();
} int find(int x){
return f[x]==x?x:f[x]=find(f[x]);
} void merge(int x,int y){
int xx=find(x),yy=find(y);
if(xx!=yy) f[xx]=yy;
} void Init(void){
// for(int i=1;i<=n;i++){
// cout<<f[i]<<" ";
// }
for(int i=1,x,y;i<=m;i++){
scanf("%d%d",&x,&y);
if(a!=x&&a!=y&&b!=x&&b!=y) merge(x,y);
else e.push_back(pii(x,y));
}
// for(int i=1;i<=n;i++){
// cout<<f[i]<<" ";
// }
} void Work(void){
for(auto it:e){
int x=it.first,y=it.second;
if(y<x) swap(x,y);
if(a==x) A.insert(find(y));
if(a==y) A.insert(find(x));
if(b==x) B.insert(find(y));
if(b==y) B.insert(find(x));
}
int aa=0,bb=0;
for(int i=1;i<=n;i++){
// if(i==a||i==b) continue;
if(i!=a&&i!=b&&A.count(find(i))&&B.count(find(i))==0) ++aa;
if(i!=a&&i!=b&&B.count(find(i))&&A.count(find(i))==0) ++bb;
}
for(auto it:e) merge(it.first,it.second);
if(find(a)==find(b)) printf("%d\n",aa*bb);
else puts("0");
} int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d%d%d",&n,&m,&a,&b);
clear();
Init();
Work();
}
}

20191214 Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)的更多相关文章

  1. 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)

    比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...

  2. Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)

    链接 签到题,求出位数,然后9*(位数-1)+ 从位数相同的全一开始加看能加几次的个数 #include<bits/stdc++.h> using namespace std; int m ...

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

  4. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2)

    A - Forgetting Things 题意:给 \(a,b\) 两个数字的开头数字(1~9),求使得等式 \(a=b-1\) 成立的一组 \(a,b\) ,无解输出-1. 题解:很显然只有 \( ...

  5. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3

    A,有多个线段,求一条最短的线段长度,能过覆盖到所又线段,例如(2,4)和(5,6) 那么我们需要4 5连起来,长度为1,例如(2,10)(3,11),用(3,10) 思路:我们想一下如果题目说的是最 ...

  6. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) D. Power Products

    链接: https://codeforces.com/contest/1247/problem/D 题意: You are given n positive integers a1,-,an, and ...

  7. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) C. p-binary

    链接: https://codeforces.com/contest/1247/problem/C 题意: Vasya will fancy any number as long as it is a ...

  8. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) B2. TV Subscriptions (Hard Version)

    链接: https://codeforces.com/contest/1247/problem/B2 题意: The only difference between easy and hard ver ...

  9. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) A. Forgetting Things

    链接: https://codeforces.com/contest/1247/problem/A 题意: Kolya is very absent-minded. Today his math te ...

随机推荐

  1. 解密国内BAT等大厂前端技术体系-携程篇(长文建议收藏)

    1 引言 为了了解当前前端的发展趋势,让我们从国内各大互联网大厂开始,了解他们的最新动态和未来规划.这是解密大厂前端技术体系的第四篇,前三篇已经讲述了阿里.腾讯.百度在前端技术这几年的技术发展. 这一 ...

  2. 3年java开发面试BAT,你必须彻底搞定Maven!

    前言 现在的Java项目中,Maven随处可见. Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖 ...

  3. 使用keepalived做High Available(HA)

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/eab34383-d ...

  4. vue组件初始化过程

    之前文章有写到vue构造函数的实例化过程,只是对vue实例做了个粗略的描述,并没有说明vue组件实例化的过程.本文主要对vue组件的实例化过程做一些简要的描述. 组件的实例化与vue构造函数的实例化, ...

  5. Intel和AMD的CPU性能对比图

    Intel和AMD的CPU性能对比图:

  6. Shell(七):文件包含

    和其他语言一样,Shell 也可以包含外部脚本(类似python中import的功能).这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filenam ...

  7. 2019年Java面试题基础系列228道(1)

    1.面向对象的特征有哪些方面? 面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为 ...

  8. 基于XML的开发

    基于XML的开发 1.定义一个切面类 /** * Created by zejian on 2017/2/20.*/ public class MyAspectXML { public void be ...

  9. Java对象导论

    Java对象导论 1.1 抽象过程 万物皆对象. 程序是对象的集合(即:类),他们通过发送消息(调用方法)来告知彼此要做的. 每个对象都有自己的由其他对象所构成的存储(引用其他对象或基本类型,即组合) ...

  10. RHEL/CentOS 安装最新版Nginx

    本篇简单介绍如何在RHEL/CentOS安装最新版本的Nginx. Step 1:安装yum-utils [root@localhost ~]# cat /etc/redhat-release Cen ...