A

=w=

B

qvq

C(贪心)

题意:

Alice和Bob分别有长度为n(n<=1e5)的字符串,Alice先手,每次从自己的字符串中抽出一个字母放到新字符串的某个位置,一共轮流n次,也就是说最后新字符串长度为n。Alice的决策时希望最后结果字典序最小,Bob则是希望最大,他们都是聪明的,请输出最后会得到怎样一个字符串。

分析:

先对A和B的字符串排序,A的字符串从小到大排序,B的字符串从大到小排序,并且舍去他们各自的后一半字符,这些肯定用不到

轮到A,A希望字符串字典序小

  1)最直观的贪心就是把我现在手里最小的甩到最前面

  2)但是考虑到一点,就是如果B手中所有字符比A手中最小的那个字符还要小,那其实A不需要把东西甩到最前面,最前面让B去补,那么结果会更小;所以就是如果遇见这种情况,那么A就把自己最大的一张丢到序列的最后面

轮到B,B希望字符串字典序打

  1)最直观的贪心就是把我现在手里最大的甩到最前面

  2)但是考虑到一点,如果B手中所有字符比A手中最小的那个还要小,那其实A不需要把东西甩前面,最前面让A去补,那么结果会更大;所以如果遇见这种情况,那么B就把自己最小的一张丢到序列最后面

具体实现就两个指针移一移

D(缩点)

题意:

给你一个联通的无向图(n<=3e5),你需要给每个点一个编号,要满足:任意一对相邻的点对,那么点的编号差<=1,;任意一对不相邻的点对,那么点的编号差>1

分析:

我们可以把那些“等价的点”全部编号设为一样的

什么样的点是等价的呢?

如果有一些点相邻的点(加上自己)都是一模一样的,那么它们就是等价的

具体来看,就是一个完全子图,他们的编号应该是一样的(除了连出去边的个边点)

所以可以对vector排序,挑出那些邻接表情况相同的点,全部缩点

然后很容易发现对于那些分叉的情况是没有解的,也就是所有点的度数必须<=2

那么度数<=2就是一个链或者一个环,经检验,环也是不符合的,只有链是符合的

输出方案就从链的一端直接从1开始递增填数字就行了

Codeforces Round #414的更多相关文章

  1. Codeforces Round #414 C. Naming Company

    http://codeforces.com/contest/794/problem/C 题意: 有两个人要为公司起名字,每个人手中都有n个字符,现在要取一个n个字符长度的公司名.两人轮流取名,每次选择 ...

  2. Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2)

    A: 思路:就是找b,c之前有多个s[i] 代码: #include<stdio.h>#define ll long longusing namespace std;ll a,b,c;in ...

  3. Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 【ABC】

    老年人题解,语言python3 A - Bank Robbery 题意:给你ABC,以及n个数,问你在(B,C)之间的数有多少个. 题解:对于每个数判断一下就好了嘛 x,y,z = map(int,i ...

  4. Codeforces Round #414 A. Bank Robbery

    A. Bank Robbery time limit per test 2 seconds memory limit per test   256 megabytes   A robber has a ...

  5. 【构造】Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) D. Labelling Cities

    考试的时候想的是,将所有的完全子图缩起来,然后如果剩下的是一条链,依次对其进行标号即可. 看了官方题解,发现完全子图这个条件太强了,缩点的条件仅仅需要保证原本两个点的“邻接表”相同即可.(注意这里的“ ...

  6. 【贪心】【multiset】Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) C. Naming Company

    考虑两个人,先把各自的集合排个序,丢掉一半,因为比较劣的那一半一定用不到. 然后贪心地放,只有两种决策,要么把一个最优的放在开头,要么把一个最劣的放在结尾. 如果我的最优的比对方所有的都劣(或等于), ...

  7. Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 继续跪一把

    这次的前三题挺简单的,可是我做的不快也不对. A. Bank Robbery time limit per test 2 seconds memory limit per test 256 megab ...

  8. codeforces round #414 div1+div2

    A:判断一下就可以了 #include<bits/stdc++.h> using namespace std; typedef long long ll; int a, b, c, n; ...

  9. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

随机推荐

  1. 2556. [NOIP2016]玩具谜题

    [题目描述] 小南有一套可爱的玩具小人,它们各有不同的职业.有一天,这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝国内,有的面朝圈外.如下图: 这时singer告诉小南 ...

  2. 掌握Spark机器学习库-07-回归分析概述

    1)回归与分类算法的区别 回归的预测结果是连续的,分类的预测结果是离散的. 2)spark实现的回归算法有: 3)通过相关系数衡量线性关系的程度

  3. JVM 优点与缺点的深入分析

    Java 最初诞生的时候,它可以说是其他语言的进化版.不仅因为Java很简单,而且这一进化的语言还是一个可以运行第三方硬件字节码的虚拟机.它还是垃圾收集站,从而令存储管理和内核转储(core dump ...

  4. vim设置默认显示行号

    vim /root/.vimrc 设置在当前登录用户根目录下,.vimrc文件本身不存在,创建后之间添加下面配置保存即可 set number

  5. Discuz3.1登录QQ互联显示redirect uri is illegal(100010)的解决

    QQ互联最近也是BUG不断,引起了很多用户的不满,从早前关闭群组功能,到发布2.0接口标准,引发系列站长用户的连锁反应.而Discuz从X3开始,为了应对QQ互联的2.0接口标准,采用了云平台来整合Q ...

  6. fedora安装gcc

    查看gcc版本 gcc --version 命令行编译 g++ -std=c++11 -o main main.cpp 查看程序是否编译成功 echo $? 返回0表示编译成功 新版的Fedora(2 ...

  7. zabbix监控tcp连接并发数

    第一步,想在zabbix的web监控tcp连接数,那么要看zabbix-server的版本和zabbix-agent版本是否一致,不然TCP-status图没有数据 也会报错.下图就是版本不符合报错的 ...

  8. opencv读图片错误,已解决

    could not loag image... terminate called after throwing an instance of 'cv::Exception' what(): OpenC ...

  9. 「 Luogu P2196 」 挖地雷

    # 解题思路 跑 $\text{n}$ 遍 $\text{spfa}$ 并记录路径,找到比当前最长路长的就更新答案,并且将路径也更新,注意起点的处理. # 附上代码 #include <iost ...

  10. Linux终端以及bash

    目 录 第1章 Linux系统终端概述    1 1.1 图形化    1 1.2 字符终端    1 1.3 who和w    1 1.3.1 who    1 1.3.2 w    1 1.3.3 ...