http://codeforces.com/contest/1095

A. Repeating Cipher

#include <bits/stdc++.h>
using namespace std; int N;
string s;
string ans = ""; int main() {
scanf("%d", &N);
cin >> s;
int cnt = ;
for(int i = ; i < N;) {
ans += s[i];
cnt ++;
i += cnt;
}
cout << ans;
return ;
}

B. Array Stabilization

#include <bits/stdc++.h>
using namespace std; const int maxn = 1e5 + ;
int N;
int a[maxn]; int main() {
scanf("%d", &N);
for(int i = ; i < N; i ++)
scanf("%d", &a[i]); sort(a, a + N);
int ans1 = a[N - ] - a[];
int ans2 = a[N - ] - a[];
printf("%d\n", min(ans1, ans2));
return ;
}

C. Powers Of Two

#include <bits/stdc++.h>
using namespace std; int N, K;
priority_queue<int> q;
int cnt = ; int main() {
scanf("%d%d", &N, &K);
for(int i = ; i >= ; i --) {
if(N >= ( << i)) {
q.push(i);
N -= ( << i);
cnt ++;
}
} if(K < cnt) printf("NO\n");
else {
while(cnt < K) {
int rec = q.top();
if(rec == ) {
printf("NO\n");
return ;
} q.pop();
q.push(rec - );
q.push(rec - ); cnt ++;
} printf("YES\n");
while(!q.empty()) {
int t = q.top();
printf("%d ", ( << t));
q.pop();
} } return ;
}

D. Circular Dance

#include <bits/stdc++.h>
using namespace std; const int maxn = 2e5 + ;
vector<int> v[maxn];
int a[maxn][], vis[maxn];
int N;
vector<int> ans; void dfs(int step) {
vis[step] = ;
ans.push_back(step);
for(int i = ; i < v[step].size(); i ++) {
if(!vis[v[step][i]] && (v[step][i] == a[step][] || v[step][i] == a[step][])) {
vis[v[step][i]] = ;
dfs(v[step][i]);
}
}
} int main() {
scanf("%d", &N);
for(int i = ; i <= N; i ++) {
int st, en;
scanf("%d%d", &st, &en);
a[i][] = st, a[i][] = en;
v[st].push_back(en);
v[en].push_back(st);
} dfs();
for(int i = ; i < ans.size(); i ++)
printf("%d%s", ans[i], i != ans.size() - ? " " : "\n"); return ;
}

E. Almost Regular Bracket Sequence

(合法的括号匹配串的充要条件是 ① 前 i 项 前缀和非负 ② sum[N] == 0)

#include <bits/stdc++.h>
using namespace std; const int maxn = 1e6 + ;
int N;
string s;
int a[maxn], sum[maxn], b[maxn], c[maxn]; int main() {
cin >> N >> s;
for(int i = ; i < N; i ++) {
if(s[i] == '(')
a[i] = ;
else a[i] = -;
} sum[] = a[];
for(int i = ; i < N; i ++)
sum[i] = a[i] + sum[i - ]; c[] = sum[];
for(int i = ; i < N; i ++)
c[i] = min(c[i - ], sum[i]); b[N - ] = sum[N - ];
for(int i = N - ; i >= ; i --)
b[i] = min(sum[i], b[i + ]); int ans = ;
for(int i = ; i < N; i ++) {
if(s[i] == '(') {
if(c[i - ] >= && b[i] - >= && sum[N - ] - == ) ans ++;
} else {
if(c[i - ] >= && b[i] + >= && sum[N - ] + == ) ans ++;
}
} printf("%d\n", ans); return ;
}

F. Make It Connected

(很久没写最小生成树 这个先留一哈)

写的好烦 脑子不好用 想不到 然后开始吃薯片 还是暴躁 越来越暴躁 在放弃的边缘大鹏展翅 所以完全不想看题目 想豁奶茶想吹风 

CodeForces Round #529 Div.3的更多相关文章

  1. # Codeforces Round #529(Div.3)个人题解

    Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...

  2. Codeforces Round #529 (Div. 3) E. Almost Regular Bracket Sequence (思维)

    Codeforces Round #529 (Div. 3) 题目传送门 题意: 给你由左右括号组成的字符串,问你有多少处括号翻转过来是合法的序列 思路: 这么考虑: 如果是左括号 1)整个序列左括号 ...

  3. Codeforces Round #529 (Div. 3) 题解

    生病康复中,心情很不好,下午回苏州. 刷了一套题散散心,Div 3,全部是 1 A,感觉比以前慢了好多好多啊. 这几天也整理了一下自己要做的事情,工作上要努力... ... 晚上还是要认认真真背英语的 ...

  4. Codeforces Round #529 (Div. 3) C. Powers Of Two

    http://codeforces.com/contest/1095/problem/C 题意:给n找出k个2的幂,加起来正好等于n.例如 9,4:9 = 1 + 2 + 2 + 4 思路:首先任何数 ...

  5. Codeforces Round #529 (Div. 3) C. Powers Of Two(数学????)

    传送门 题意: 给出一个整数 n ,问能否将 n 分解成 k 个数之和,且这 k 个数必须是2的幂. 如果可以,输出"YES",并打印出任意一组解,反之输出"NO&quo ...

  6. Codeforces Round #529 (Div. 3) F.Make It Connected

    传送门 题意: 有 n 个顶点,每个顶点有个花费 a[ i ],连接顶点 u,v 需要花费 a[v]+a[u]的代价. 有 m 个特殊边,每条边有三个参数 u,v,w 代表的意思是连接 u,v 的花费 ...

  7. Codeforces Round #529 (Div. 3) D. Circular Dance

    传送门 题意: 有 n 个孩子编号为 1~n ,绕着圣诞树 dance: 编号为 i 的孩子可以记住ai1,ai2两个小孩,ai1,ai2是 i 在顺时针方向的相邻的两个小孩,但ai1,ai2不一定是 ...

  8. Codeforces Round #529 (Div. 3) E. Almost Regular Bracket Sequence(思维)

    传送门 题意: 给你一个只包含 '(' 和 ')' 的长度为 n 字符序列s: 给出一个操作:将第 i 个位置的字符反转('(' ')' 互换): 问有多少位置反转后,可以使得字符串 s 变为&quo ...

  9. Codeforces Round #529 (Div. 3) F. Make It Connected (贪心,最小生成树)

    题意:给你\(n\)个点,每个点都有权值,现在要在这\(n\)个点中连一颗最小树,每两个点连一条边的边权为两个点的点权,现在还另外给了你几条边和边权,求最小权重. 题解:对于刚开始所给的\(n\)个点 ...

随机推荐

  1. 【转载】failed to initialize nvml driver/library version mismatch ubuntu

    英伟达驱动版本是384.130 显示的NVRM version: NVIDIA UNIX x86_64 Kernel Module是:384.130. 若是旧的版本就会出现如下问题. 这个问题出现的原 ...

  2. Vue编写的todolist小例子

    Vue编写的todolist小例子 本篇博客主要包含一个内容: 1.第一个内容:使用Vue编写todolist例子,包含的主要知识是v-model,v-for,el表达式,以及Vue中使用method ...

  3. android开发——用户头像

    最近,小灵狐得知了一种能够加快修炼速度的绝世秘法,那便是修炼android神功.小灵狐打算用android神功做一个app,今天他的修炼内容就是头像功能.可是小灵狐是个android小白啊,所以修炼过 ...

  4. jdk旧版本下载

    如何找到旧版本的jdk: 1.去oracle官网关于下载jdk的这一板块,https://www.oracle.com/technetwork/java/javase/downloads/index. ...

  5. 【PS技巧】如何校正倾斜的图片

    1.打开PS,直接拖拽图片. 2.点击[滤镜==>扭曲==>镜头校正],出现校正对话框. 3.点击拉直工具,从右向左滑一条直线. 参考文档: 在Photoshop中如何校正倾斜的图片?

  6. MySql Undo Redo

    Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity) ...

  7. UVA1627-Team them up!(动态规划)

    Problem UVA1627-Team them up! Total Submissions:3577  Solved:648 Time Limit: 3000 mSec Problem Descr ...

  8. Python打包—Pyinstaller

    2018-09-27 21:12:05   一 前言 在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好 ...

  9. 微信小程序如何引入外部字体库iconfont的图标

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 微信小程序不能识别很多文件, 其中就包括外部的字体文件. 那我们怎么突破他的防火线呢, ...

  10. linux防火墙开放和禁用指定端口

    一.例如:开放8080端口 firewall-cmd --permanent --add-port=8080/tcp 二.重启使设置生效 systemctl restart firewalld.ser ...