Examples

input

6
baabbb

output

bab

input

10
ooopppssss

output

oops

思路:

模拟等差数列即可

#include<bits/stdc++.h>
using namespace std;
int main() {
//freopen("in.txt", "r", stdin);
ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n; string s, ss = "";
cin >> n >> s; int t = 1;
for (int i = 0; i < n; i += t) {
ss += s[i], ++t;
}
cout << ss << endl;
}

Examples

input

4
1 3 3 7

output

2

input

2
1 100000

output

0

Note

In the first example you can remove \(7\) then instability of the remaining array will be \(3−1=2\).

In the second example you can remove either 11 or 100000100000 then instability of the remaining array will be $100000−100000=0 $ and \(1−1=0\) correspondingly.

思路:

取删最小值或最大值的min

#include<bits/stdc++.h>
using namespace std;
int a[100100];
int main() {
//freopen("in.txt", "r", stdin);
ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n; cin >> n;
for (int i = 1; i <= n; ++i)cin >> a[i];
sort(a + 1, a + 1 + n);
cout << min(a[n - 1] - a[1], a[n] - a[2]) << endl;
}

Examples

input

9 4

output

YES
1 2 2 4

思路:

#include<bits/stdc++.h>
using namespace std;
multiset<int>s;
int main() {
//freopen("in.txt", "r", stdin);
ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n, k;
cin >> n >> k;
int m = n;
for (int i = 0; m; m >>= 1, ++i)if (m & 1)s.insert(1 << i);
if (n < k || s.size() > k) cout << "NO" << endl;
else {
while (s.size() < k) {
int a = *(--s.end()); s.erase(--s.end());
if (a == 1)break;
s.insert(a / 2);
s.insert(a / 2);
}
cout << "YES" << endl;
while (s.size()) {
cout << *s.begin() << " ";
s.erase(s.begin());
}
}
}

  • 思路: 随便选定一个起点即可。那就选择 1吧 , 选择建边 来把原来的图 恢复, 题目给出的信息是这个点后面的两个点
  • 我们不能确定这个点与谁相连,当能知道的是 后面的两个点一定相连,所以建两个无向边,最终得到的vector 是 每个点都有
  • 两个相连的点,一左一右, 题目让输出的是 从左往右 ,所以我们要保证 dfs恢复图的过程中 从1出发是往后走 。
  • 第一个遍历的是 g[ 1 ] [ 0 ]所以保证 g[ 1 ] [ 0 ]是 1后面的点即可。

Ps:成功复习了一遍DFS.

#include<bits/stdc++.h>
using namespace std;
#define maxn 234567
vector<int>g[maxn],o;
int n,x,y,s,t;
void dfs(int u,int p)
{
if(o.size()==n)return ;
o.push_back(u);
if(o.size()==n)return ;
for(int i=0; i<2; i++)
{
if(g[u][i]==p)continue;
dfs(g[u][i],u);
}
}
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d%d",&x,&y);
if(i==1)s=x,t=y;
g[x].push_back(y);
g[y].push_back(x);
}
if(g[1][1]==s||g[1][1]==t)swap(g[1][0],g[1][1]);
dfs(1,0);
for(int i=0; i<n-1; i++)printf("%d ",o[i]);
printf("%d\n",o[n-1]);
return 0;
}

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

    http://codeforces.com/contest/1095 A. Repeating Cipher #include <bits/stdc++.h> using namespac ...

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

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

  5. 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 思路:首先任何数 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块

    好的,按照我们平常的惯例,我先来讲一下今天这节课的内容,以及Java和Python在某些方面的相似之处.Python使用import语句来导入包,而Java也是如此.然而,两者之间的区别在于Pytho ...

  2. 3C智能移动周边产品龙头企业如何集成企业内部所有异构系统数据

    全面并自动集成品胜集团全域业务系统中的各类业务数据:结构化.标准化.自动化集团全部异构系统数据,提升全公司整体项目管理水平:梳理与简化跨部门.跨系统流程,清晰定义流程节点及业务边界,打通部门间信息流通 ...

  3. 如何修改Ubuntu的时间与时间同步

    1.安装ntpdate,同步标准时间 zce@ubuntu:~$ sudo apt install ntpdate 输入管理员密码确认安装 zce@ubuntu:~$ sudo apt install ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (149)-- 算法导论12.2 4题

    五.用go语言,证明:如果一棵二叉搜索树中的一个结点有两个孩子,那么它的后继没有左孩子,它的前驱没有右孩子. 灵捷3.5 . 文心一言: 为了证明这个性质,我们首先需要明确二叉搜索树(BST)的定义和 ...

  5. 吉特日化MES实施--三种浪费

    在实施吉特日化MES系统的过程中,遇到各种问题,包括自身问题以及甲方问题,导致项目滞后延期的主要问题分析,汇总三种浪费: (1)  信息传递的浪费: 这个在甲方产品设计以及生产过程中出现的问题,也是我 ...

  6. Javascript实现Canvas绘图 —— 2D绘图之填充、描边及绘制矩形

    Canvas绘图的实现: <canvas>元素负责在页面中设定一个区域,通过JS动态地在这个区域中绘制图形. IE9+.Firefox1.5+.Safari2+.Opera9+.Chrom ...

  7. MyBatis中获取参数值的两种方式:${} 和 #{},以及它们之间区别是什么?

    MyBatis中获取参数值的两种方式 ${}:的本质就是字符串拼接 #{}:的本质就是占位符赋值 ① 使用${}占位符,在字符串拼接的方式拼接sql,若为字符串类型或为日期类型的字段进行赋值时,需要手 ...

  8. 使用kubeadm在Centos8上部署kubernetes1.18

    // 查看系统版本 cat /etc/centos-release CentOS Linux release 8.1.1911 (Core) // 如果系统环境为8.0(云服务器默认最大安装环境为8. ...

  9. springboot整合mybatis步骤思路

    /** * springboot整合mybatis步骤思路 * 依赖导入 * 建表 * 实体类 * mapper配置文件 * mapper接口 * yaml配置 * properties配置数据库连接 ...

  10. ElasticSearch之cat allocation API

    查看各节点上各个shard的硬件使用情况,命令样例如下: curl -X GET "https://localhost:9200/_cat/allocation?v=true&pre ...