VP赛况如下:

前言:感觉这一场题目难度还是比较贴近新生的,我一个codeforces小蓝名一小时居然AK了,F题数据有点水(?)暴力dfs居然都能过...

A:A?C

题意:给你字符串,如果字符串是ABC,那么就输出ARC;反之输出ABC。

#include<bits/stdc++.h>
using namespace std;
int main(){
string a;cin>>a;
if(a[]=='R') cout<<"ABC"<<endl;
if(a[]=='B') cout<<"ARC"<<endl;
}

B:Trick or Treat

题意:给你n个数,k个组,每组有d个数,然后输入d个数,标记,最后查找有[1,n]中有几个数字没被访问过

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+;
bool vis[maxn];
int main(){
int n,k;cin>>n>>k;
for(int i=;i<=k;i++){
int x;cin>>x;
for(int j=;j<=x;j++){
int q;cin>>q;
vis[q]=true;
}
}
int cnt=;
for(int i=;i<=n;i++){
if(!vis[i]) ++cnt;
}
cout<<cnt<<endl;
}

C:Peaks

题意:有N个观测台,M条边,每个人有一个高度H,输出有多少个节点满足它比所有它相邻的观测台高。

解法:我习惯用链式前向星来存边,思路就是查找每个节点的边,看是否>=他,如果是的话,那就不行了,否则ans++;

#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define endl '\n'
#define mem(a,b) memset(a,b,sizeof(a))
#define IO ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+;
const int maxn=1e5+;
int h[maxn];
int tot,head[maxn];
struct E{
int to,next;
}edge[maxn<<];
void add(int u,int v){
edge[tot].to=v;
edge[tot].next=head[u];
head[u]=tot++;
}
int main(){
int n,m;cin>>n>>m;mem(head,-);
for(int i=;i<=n;i++) cin>>h[i];
for(int i=;i<=m;i++){
int u,v;cin>>u>>v;
add(u,v);add(v,u);
}
int ans=;
for(int u=;u<=n;u++){
int flag=;
for(int i=head[u];i!=-;i=edge[i].next){
int v=edge[i].to;
if(h[v]>=h[u]){
flag=;break;
}
}
if(!flag) ++ans;
}
cout<<ans<<endl;
}

D:I hate Factorization

题意:给定X,输出一组(A,B),满足A5-B5=X.

解法:看了一下数据范围,直接枚举暴力就行(写wa四次,一个小地方没开LL,好菜啊.....逃)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ll x;cin>>x;
for(ll i=-;i<=;i++){
for(ll j=-;j<=;j++){
ll a=i*i*i*i*i;ll b=j*j*j*j*j;
if(x==(a-b)){
cout<<i<<" "<<j<<endl;
return ;
}
}
}
}

E:This Message Will Self-Destruct in 5s

题意:给一个长度为N的序列A,求有多少数字对(i,j)满足Ai+Aj=|i - j|。

思路:我不太会数论..想了一会才明白。原式等价于:Aj + j = i - Ai,那么只需要每次查询 i - Ai的个数,然后更新Ai + i即可。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=2e5+;
int a[maxn];
int main(){
int n;cin>>n;
map<int,int> mp;ll ans=;
for(int i=;i<=n;i++){
int x;cin>>x;
ans+=mp[i-x];
mp[i+x]++;
}
cout<<ans<<endl;
}

F: Three Variables Game

题意:给N个字符串("AB","AC","BC")和A,B,C三个值,按顺序执行每个字符串的操作,如果这个字符串是"AB",那么将执行A--,B++或A++,B--,其它字符串类似,并且每一个操作之后A,B,C三个值不能小于0,判断是否按顺序执行下来,如是,并要求具体操作序列。

解法:看到这个题,第一反应就是dfs,配套剪枝就行(本来想想先莽一发dfs,但没想到过了,Exe_time也只有33ms,怀疑数据有点水?)

#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define endl '\n'
#define mem(a,b) memset(a,b,sizeof(a))
#define IO ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+;
const int maxn=1e5+;
int n,a,b,c;
string s[maxn];
vector<char> vec;
int flag;
void dfs(int x,int a,int b,int c){
if(flag) return ;
if(x==n+&&a>=&&b>=&&c>=){
flag=;
puts("Yes");
for(int i=;i<n;i++) cout<<vec[i]<<endl;
return ;
}
if(s[x][]=='A'&&s[x][]=='B'){
if(a+>=&&b->=&&c>=){
vec.push_back('A');
dfs(x+,a+,b-,c);
vec.pop_back();
}
if(a->=&&b+>=&&c>=){
vec.push_back('B');
dfs(x+,a-,b+,c);
vec.pop_back();
}
}
else if(s[x][]=='A'&&s[x][]=='C'){
if(a+>=&&b>=&&c->=){
vec.push_back('A');
dfs(x+,a+,b,c-);
vec.pop_back();
}
if(a->=&&b>=&&c+>=){
vec.push_back('C');
dfs(x+,a-,b,c+);
vec.pop_back();
}
}
else if(s[x][]=='B'&&s[x][]=='C'){
if(a>=&&b->=&&c+>=){
vec.push_back('C');
dfs(x+,a,b-,c+);
vec.pop_back();
}
if(a>=&&b+>=&&c->=){
vec.push_back('B');
dfs(x+,a,b+,c-);
vec.pop_back();
}
}
}
int main(){
cin>>n>>a>>b>>c;flag=;
for(int i=;i<=n;i++) cin>>s[i];
dfs(,a,b,c);
if(!flag) puts("No");
}

Atcoder Beginner Contest 166的更多相关文章

  1. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  2. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  3. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  4. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  5. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  6. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  7. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  8. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

  9. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

随机推荐

  1. INDIRECT函数实现动态图表的跨数据抓取

    涉及函数: indirect函数:通常有两种用法.直接指定单元格地址和隐式指定单元格地址.直接指定:=indirect("A4"),则会返回A4单元格所显示的内容.参数给定的既是字 ...

  2. 挑战全网最幽默的Vuex系列教程:第六讲 Vuex的管理员Module(实战篇)

    写在前面 这一讲是 Vuex 基础篇的最后一讲,也是最为复杂的一讲.如果按照官方来的话,对于新手可能有点难以接受,所以想了下,决定干脆多花点时间,用一个简单的例子来讲解,顺便也复习一下之前的知识点. ...

  3. curl的$post传递多维数组

    php curl传数组的话只能传一维数组,如果想传多维数组:两个方法: 1.转换成json在传输 2. //通过curl模拟post的请求: function SendDataByCurl($url, ...

  4. Python(3)

    使用除法来缩减数字,使用余数法来计算个数. class Solution: def hammingWeight(self, n: int) -> int: count = 0 while Tru ...

  5. XEP-0198:流管理

    ------------恢复内容开始------------ 原文来自:https://xmpp.org/extensions/xep-0198.html,只翻译了技术方面的内容. 摘要:这个规范定义 ...

  6. 【Python】在Pycharm中安装爬虫库requests , BeautifulSoup , lxml 的解决方法

    BeautifulSoup在学习Python过程中可能需要用到一些爬虫库 例如:requests BeautifulSoup和lxml库 前面的两个库,用Pychram都可以通过 File--> ...

  7. mac OS 安装 Homebrew软件包管理器

    Homebrew macOS 缺失的软件包的管理器 中文官网 https://brew.sh/index_zh-cn 获取安装命令 /usr/bin/ruby -e "$(curl -fsS ...

  8. 与IBM的Lin Sun关于Istio 1.0和微服务的问答

    北京时间 7 月 31 日,Istio 正式发布了 1.0 版本,并表示已经可用于生产环境.该版本的主要新特性包括跨集群 mesh 支持.细粒度流量控制以及在一个 mesh 中增量推出 mutual ...

  9. 源码阅读:Masonry(三)—— MASViewAttribute

    该文章阅读的 Masonry 的版本为 1.1.0. 这个类我们可以叫它"约束视图及其属性类",它封装了设置约束的视图和其设置约束的属性,也就是 view1 和 attr1,或是 ...

  10. 图论--2-SAT--HDU/HDOJ 1814 Peaceful Commission

    Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...