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

思路:我不太会数论..想了一会才明白。原式等价于:A+ 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. Serlvet容器与Web应用

    对启动顺序的错误认识 之前一直有个观点,应用运行在Servlet容器中,因为从Servlet容器与Web应用的使用方式来看,确实很有这种感觉. 我们每次都是启动Servlet容器,然后再启动我们的应用 ...

  2. TensorFlow1.0 线性回归

    import tensorflow as tf import numpy as np #create data x_data = np.random.rand(100).astype(np.float ...

  3. 开发一款图片压缩工具(二):使用 pngquant 实现图片压缩

    上一篇我尝试使用了 pillow 库对 png 图片进行了压缩,效果不好.这次我换用 pngquant 来压缩.pngquant 是用于 PNG 图像有损压缩的命令行实用程序和库.压缩程序会显著减小文 ...

  4. Install go1.5 for CentOS7

    https://golang.org/doc/install 下载好后,通过FTPS,传递到Linux里去,放哪里随便你自己,因为被墙了,所以在Windows通过旋风下载了这个玩意儿. 你也可以: w ...

  5. Async,Await 深入源码解析

    1.同步与异步 假设存在 IO事件A:请求网络资源 (完成耗时5s) IO事件B:查询数据库 (完成耗时5s) 情况一:线程1工人在发起A请求后,一直阻塞等待,在A响应返回结果后再接着处理事件B,那总 ...

  6. c++中set 的用法

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  7. 【三剑客】awk函数

    1. 内置函数 awk的内置函数有算术.字符串.时间.位操作和其它杂项的函数. 1.1 算术函数 atan2(y,x)  返回弧度的反正切(y/x) cos(expr)  返回expr的余弦(以弧度形 ...

  8. SAP WM TO Print Control设置里,Movement Type 的优先级更高

    SAP WM TO Print Control设置里,Movement Type 的优先级更高 存储类型的配置: 从storage type GRM 搬到任何地方,都不需要打印TO单. 移动类型的配置 ...

  9. Linux利用udev提权

    友老催我写个webshell+udev localroot的文章.这周末有点空闲时间,捣鼓了一下.公开的udev exploit有两个.一个是kcope写的SHELL版本,一个是jon写的C版本. s ...

  10. Linked List-1

    链表一直是面试的重点问题,恰好最近看到了Stanford的一篇材料,涵盖了链表的基础知识以及派生的各种问题. 第一篇主要是关于链表的基础知识. 一.基本结构 1.数组回顾 链表和数组都是用来存储一堆数 ...