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的更多相关文章

  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 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

  10. AtCoder Beginner Contest 075 C bridge【图论求桥】

    AtCoder Beginner Contest 075 C bridge 桥就是指图中这样的边,删除它以后整个图不连通.本题就是求桥个数的裸题. dfn[u]指在dfs中搜索到u节点的次序值,low ...

随机推荐

  1. WPF Canvas在Image 图像上绘图,自适应缩放.

    效果如图 实现了绘图,自适应缩放 核心代码如下 <Window.InputBindings> <KeyBinding Key="Z" Modifiers=&quo ...

  2. JS神奇的或0(|0)

    按照常识,位运算x|0,要么等于x,要么等于0 那么在JS的世界你的认知就要被颠覆了 下面请看 不带或0运算: (window.crypto.getRandomValues(new Uint32Arr ...

  3. Linux 内核:设备树(1)dtb格式

    Linux 内核:设备树(1)dtb格式 背景 dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码 ...

  4. 基于 tc 指令的网速限制工具

    前言 最近有一个需求,需要限制网卡速度进行一些测试.在朋友推荐下阅读了这篇文章 TC简单粗暴限制网速. 经过尝试,简单有效,整理成脚本放在正文,留作参考. 正文 指令解析(chatgpt 分析) 您提 ...

  5. spring-关于组件的注入及获取流程

    一.组件注入的基本流程: 容器初始化: Spring应用启动时,会读取配置(如XML配置.注解配置等),并根据这些配置创建Bean定义(BeanDefinition). 根据Bean定义,Spring ...

  6. NewstarCTF 2023 Misc

    NewStarCTF 2023 Misc week1 的 misc 请移步上一篇 NewStarCTF WEEK2 新建Word文档 直接复制出不来,改后缀为zip,document.xml得到内容 ...

  7. HTTP常见的状态码?

    100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息 200 OK 正常返回信息 201 Created 请求 ...

  8. react-devtools安装以及使用中的问题

    使用react框架开发的小伙伴肯定都想使用想vue-devtools开发工具一样,可以看见组件的状态,和当前组件里的props,data等等. 当然react也有一个开发者工具,现在废话少说,开始安装 ...

  9. 图扑低代码数字孪生 Web SCADA 智慧钢厂

    2024 年 4 月,中国钢铁工业协会发布了<钢铁行业数字化转型评估报告(2023年)>(以下简称<报告>).<报告>指出,绝大部分钢铁企业建立了数字化转型相关管理 ...

  10. oeasy教您玩转vim - 1 - # 存活下来 🥊

    存活下来 更新 apt 源,升级 vim vim 是什么 vim 是类 unix 系统上的一个文本编辑神器,在 Linux 系统环境中也被许多程序员使用,书写程序和文档. 我们本次课程将围绕 Vim ...