AtCoder Beginner Contest 314
AtCoder Beginner Contest 314 - AtCoder
A - 3.14 (atcoder.jp)
题目提供了100位,所以直接用字符串输出
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
int n;
cin >> n;
for(int i = 0;i < n + 2;i ++)
cout << s[i];
return 0;
}
B - Roulette (atcoder.jp)
感觉还是题意比较抽象,看懂了就能模拟出来了.

#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> C[n + 1];
for(int i = 1;i <= n;i ++){
int x;
cin >> x;
for(int j = 0;j < x;j ++){
int y;
cin >> y;
C[i].emplace_back(y);
}
}
int X;
cin >> X;
set<pair<int,int>> s;
for(int i = 1;i <= n;i ++){
if(std::find(C[i].begin(), C[i].end(),X) != C[i].end()){
s.insert({C[i].size(),i});
}
}
if(s.size()){
int cnt = 0;
auto x = s.begin()->first;
vector<int> ans;
for(auto [i,j] : s){
if(i == x)
ans.emplace_back(j),cnt++;
else
break;
}
cout << cnt << '\n';
for(auto i : ans )
cout << i << ' ';
}else
cout << "0\n";
return 0;
}
C - Rotate Colored Subsequence (atcoder.jp)
要把相同颜色都往左移一位,最后面的要移到前面来,所以我们可以预处理出相同颜色的字符串,然后最后一位放前面,我这里是逆转了一下,方便使用\(string.pop\_back()\),最后就是将对应颜色的放进去就好了
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
string s;
cin >> n >> m >> s;
vector<int> c(n + 1);
s = " " + s;
for(int i = 1;i <= n;i ++) cin >> c[i];
vector<string> sc(m + 1, "");
for(int i = 1;i <= n;i ++){
sc[c[i]] += s[i];
}
for(auto &i : sc){
i = i.back() + i.substr(0,i.size() - 1);
std::reverse(i.begin(), i.end());
}
string ans = "";
for(int i = 1;i <= n;i ++){
ans += sc[c[i]].back();
sc[c[i]].pop_back();
}
cout << ans << '\n';
return 0;
}
D - LOWER (atcoder.jp)(离线思想)
不管前面大小写翻转了几次,只有最后一次的大小写翻转能决定之前的字符串,之后因为没有翻转了,所以单点修改即可,因为要找到最后一次大小写修改,所以我们要用到离线思想,即把每次操作存起来判断,最后再处理结果
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
string s;
cin >> n >> s >> m;
vector<int> T(m + 1),X(m + 1);
vector<char> C(m + 1);
for(int i = 1;i <= m;i ++)
cin >> T[i] >> X[i] >> C[i];
int f = 1;
int pos = 0;
for(int i = m;i >= 1;i --){
if(T[i] != 1){
f = T[i];
pos = i;
break;
}
}
if(pos > 1){
for(int i = 1;i < pos;i ++){
if(T[i] == 1){
s[--X[i]] = C[i];
}
}
}
if(f == 2)std::transform(s.begin(), s.end(),s.begin(),::tolower);
else if(f == 3) std::transform(s.begin(), s.end(),s.begin(),::toupper);
for(int i = pos + 1;i <= m;i ++){
if(T[i] == 1){
s[--X[i]] = C[i];
}
}
cout << s << '\n';
return 0;
}
AtCoder Beginner Contest 314的更多相关文章
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
- AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...
- AtCoder Beginner Contest 075 C bridge【图论求桥】
AtCoder Beginner Contest 075 C bridge 桥就是指图中这样的边,删除它以后整个图不连通.本题就是求桥个数的裸题. dfn[u]指在dfs中搜索到u节点的次序值,low ...
随机推荐
- Spring Boot入门实验
一. 实验目的和要求 1.掌握使用 IDEA 通过 Maven 和 Spring Initializr 的方式创建 Spring Boot 应用程序: 2.掌握 Maven 的工作原理: 3.了解 s ...
- 04-Python文件操作
打开文件 f=open("我的文件.txt","r",encoding="utf8") #打开一个文件(读模式) f.close() #关闭 ...
- 慕课DJANGO配置
重写内置的错误处理视图 在项目urls.py中添加配置 handler500 = "app01.views.page_500" handler404 = "app01.v ...
- javaApi,mapreduce,awk,scala四种方式实现词频统计
awk方式实现词频统计: 方式一: vi wordcount.awk { for (i = 1; i <=NF;i++) //NF 表示的是浏览记录的域的个数 freq[$i]++ } END{ ...
- 【Python】python笔记:时间模块/时间函数
1.Python时间模块 import time import datetime # 一: time模块 ############## # 1.时间戳 print (time.time()) # 16 ...
- Java中final用法与详解
final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的. 这里从final关键字在数据域.方法和类中三个方面分析final关键字的主要用法. final应用于基本数据类型 1 ...
- SQL注入方法
目录 前言 如何测试与利用注入点 手工 注入思路 工具 sqlmap -r -u -m --level --risk -v -p --threads -batch-smart --os-shell - ...
- 谈谈你对 keep-alive 的了解?
在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大 ...
- PS工具的基本使用
常见的图片格式: 切片工具的使用 1.用切片选中图片 2.导出切片 3.切片悬着工具 可以选择指定 切片框 删除. 点击图层 切图 清除切片 基于参考线的切片 切图插件Cutterman
- yolov5 筛选正样本流程 代码多图详解
yolov5正样本筛选原理 正样本全称是anchor正样本,正样本所指的对象是anchor box,即先验框. 先验框:从YOLO v2开始吸收了Faster RCNN的优点,设置了一定数量的预选框, ...