AT2306 Rearranging】的更多相关文章

[AT2306]Rearranging(拓扑序) 只有luogu 题面(luogu): 有一个$n$个数组成的序列$a_{i}$. 高桥君会把整个序列任意排列,然后青木君可以选择两个相邻的互质的数交换位置. 高桥君希望最终序列的字典序尽量小,而青木君希望字典序尽量大.求最终序列. 思路: 经过一番思考,我们发现我们可以知道的只有"不互质的数之间不能交换" 换句话说也就是两个不互质的数之间的先后是不会反转的 但通过这个我们无法得到任何推论... 所以只能从这个唯一条件下手了. 考虑将不互…
有一个显然的,就是不互质的数的相对位置是不会改变的,那么我们把它们放到一个连通块里面去,然后我交换就是交换两个里面最小的对吧.直接连起来然后跑\(TopSort\)就行了. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<algorithm> #include<queue> #include<set> #in…
time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a string ss consisting only of lowercase Latin letters. You can rearrange all letters of this string as you wish. Your task is…
给你一个1~n排好的数组,每次提一个数到最前面,问你最后形成的序列. 就把他的输入顺序倒过来输出即可.没出现过的再按原序输出. #include<cstdio> using namespace std; int n,m,path[200010],a[100010],e; bool vis[200010]; int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;++i){ scanf("%d&quo…
题面 传送门 思路 首先,一个显然的结论是:Alice调整过后的序列中任意两个不互质的数的相对顺序无法改变 那么我们可以以这个性质为突破口 我们在两个不互质的权值的点之间连一条边(没错这是个图论题!!!),那么每个联通块的一个拓扑序就会是这个块最终被Bob变成的样子 显然,Alice可以贪心操作,使得这个拓扑序中越小的越靠前 那么我们把所有数从小到大排序,然后从小的开始dfs,每次dfs时从最小的开始先走,得到一个$DAG$ 然后把所有的$DAG$的拓扑排序的那个队列插到一个堆里面,每次取出最小…
有一个(比较显然又有点假的)结论:最优方案中(若存在),每一个数(指$3n$个)最多被移动1次 先$o(n^{2})$枚举移动到队首和队尾的操作次数(即目标状态的一个前缀和后缀),判定能否合法 首先,根据这个前缀和后缀的数字以及个数,可以确定每类数(指$n$类)的操作(但不能确定顺序),即可以知道操作了多少次$L$和$R$ (同时由于不同类的顺序是独立的,这就保证了这个前缀和后缀符合条件,考虑中间未被操作的部分) 其次,对于每一类数,将其$L$和$R$的操作次数组成二元组,分为以下几类: (1)…
Content 有 \(t\) 次询问,每次询问给定一个字符串 \(s\).定义一个"好的字符串"为不是回文串的字符串.对于每一次询问,求出任意一个重新排列能够得到的"好的字符串",或者这不可能实现. 数据范围:\(1\leqslant t\leqslant 100,1\leqslant|s|\leqslant 1000\). Solution 首先我们来判断一下,什么样的情况下一个回文串无法变成一个非回文串?显然是这个回文串里面只有一种字符的情况下.那么其他的情况…
iOS9之后,默认网络请求是https,所有我们要设置一下网络安全,具体设置如下 1.第三方类库 XMLDictionary 下载地址: https://github.com/nicklockwood/XMLDictionary   所用到的xml文件 http://www.meituan.com/api/v1/divisions?mtt=1.help%2Fapi.0.0.im7eandj 效果如下: 代码实现: 根视图: rootTableViewController.m文件 #import…
写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的回答, 而唯一几个比较接近答案的,说要 self.tableView.reloadData(),也没有贴上代码,说要放在哪个函数内, 都犹抱琵琶半遮面,让初学者自己采坑,于是郁闷了一下午,刚刚回到家,试想想,要不试试英文网,毕竟Swift就是人家老外的, 说不定老外会告诉你,怎么取得数据并绑定Tab…
2008-11   Satoshi Nakamoto  Bitcoin: A Peer-to-Peer Electronic Cash System http://p2pbucks.com/?p=9963 https://bitcoin.org/bitcoin.pdf http://www.useit.com.cn/thread-11046-1-1.html 比特币白皮书,一种点对点的电子现金系统 1. 比特币白皮书简介 互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付信…