Codeforces Round #529 (Div. 3) 练习赛

image-20200904205312641

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;
}

image-20200904205614259

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值