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. NodeJS二进制包安装和快捷键配置(适用于U盘版安装配置)

    首先下载NodeJS二进制安装包:https://nodejs.org/dist/v10.15.3/node-v10.15.3-win-x64.zip 在D盘新建NodeJS文件夹,解压node-v1 ...

  2. 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题

    我这里故意放了一个超过100M的文件 后续,git add ,git commit 然后,git push 此时会发现出现了错误.如果,我们再这里直接在文件系统中删除这个大的文件,然后再次提交,会发现 ...

  3. puppet 横向扩展(二)

    Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的环境 3.1.1. 安装puppetmaster 以及 apache passenger 3.1.2 ...

  4. C语言 统计一篇英文短文中单词的个数

    //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ #include<stdio.h> #define N 1000 void main(){ ] ...

  5. leetcode刷题--两数之和(简单)

    一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然 ...

  6. Spark1.0.0 源码编译和部署包生成

    问题导读:1.如何对Spark1.0.0源码编译?2.如何生成Spark1.0的部署包?3.如何获取包资源? Spark1.0.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对 ...

  7. 关于折半法查找的一些总结以及ArrayList类的总结

    一.折半法查找的总结(这算法很好理解,但我花了好久琢磨他有啥用.....) 1.实际意义 折半法查找主要是为了能够很快在一个数组中找出我们所需要的那个元素,与往常我们通过一个一个比较的方法不同,折半法 ...

  8. CentOS 7下安装Python3.6

    CentOS 7下安装Python3.6.4   CentOS 7下安装Python3.5 •安装python3.6可能使用的依赖 yum install openssl-devel bzip2-de ...

  9. md5之守株待兔

    第一个实验吧的题目,不太会做,参考了很多大佬的经验,最后发现这个题目很简单,大概这就是入门的感觉吧!如果你多次尝试点开题目给的连接,就会发现,系统的密钥一直会变,可是我的密钥却保持一个,这就让我们联想 ...

  10. Leetcode:234 回文链表

    leetcode:234 回文链表 关键点:请判断一个链表是否为回文链表.示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true. ...