CF891B-Gluttony【构造】

正题

题目链接:https://www.luogu.com.cn/problem/CF891B


题目大意

给出nnn个数字互不相同的一个序列aaa,求它的一个排列bbb,使得选出任意一个1∼n1\sim n1n的下标真子集,都有aaa的对应下标和不等于bbb的对应下标和。

1≤n≤22,0≤ai≤1091\leq n\leq 22,0\leq a_i\leq 10^91n22,0ai109


解题思路

首先考虑对于每个aia_iai向它对应bib_ibi连边,然后如果连出来的不是一个大小为nnn的环的话显然是错的,因为一次选择相当于选择环上的一条边,那么选一个环显然是对的。

然后现在问题就变成了找一个环排列满足以上的条件,再考虑怎么找这个环排列,发现对应环上选择的连续一段那么最后肯定是头+++而且尾−-,然后中间的不计贡献,换句话就是无法在这个环上选出一个子序列,然后+/−+/-+/交错使得和为000

对于这个问题的构造就很简单了,直接选择一个递增的序列,这样每个+++肯定有个比他更大/小的−-与它抵消。

不过这样看上去其实是想复杂了,换种想法其实就是对于每个选出的除了最大的aia_iai都有一个更大的bib_ibi对应,然后如果选择了最大的aia_iai那么这个差值需要选择另外n−1n-1n1个才能抵上。

时间复杂度:O(nlog⁡n)O(n\log n)O(nlogn)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=30;
int n,a[N],b[N];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];sort(b+1,b+1+n);for(int i=1;i<=n;i++){if(a[i]==b[n])printf("%d ",b[1]);else printf("%d ",b[upper_bound(b+1,b+1+n,a[i])-b]);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DP专练2 (大理石 + [ZJOI 2010]数字计数)

你肯定以为DP专练会有很多题&#xff0c; 但是请考虑一下本仙女的DP码力&#xff0c;一次性能更几个题。。。 来吧&#xff0c;别害怕呀~~ 文章目录大理石题目题解代码实现数字计数题目题解代码实现大理石 题目 林老师是一位大理石收藏家&#xff0c;他在家里收藏了n块各种…

二阶常系数齐次线性递推数列

定义 若数列 \(\{a\}\) 满足 \(a_nc_1a_{n-1}c_2a_{n-2}\) &#xff0c;\(c_1,c_2\) 为常数&#xff0c;就称这种数列为二阶常系数齐次线性递推数列。 求解 加入能够将递推关系式改写为 \((a_n-ka_{n-1})p(a_{n-1}-ka_{n-1})\) 的形式&#xff0c;就可以求出 \(a_n-ka_{n-1}\) …

YBTOJ:斐波拉契(矩阵快速幂)

文章目录题目描述题目描述代码题目描述 题目描述 关键在于如何转化为本题的题目。。。 设 y(1-根号5&#xff09;/2$$ 再令&#xff1a; A(n)xn yn 通过尝试可以发现&#xff0c;A其实就是一个1,3为前两项的斐波拉契数列 则 xnA(n)-yn A的值可以用矩阵快速幂来求 而y是在(-1,…

ABP 框架 数据库底层迁移 Mysql 集群

技术交流&#xff0c;请加QQ群&#xff1a;538327407我的各种github 开源项目和代码&#xff1a;https://github.com/linbin524背景笔者 目前架构的IOT 项目是使用abp 框架作为后台,虽然abp的框架适用于中小型项目框架&#xff0c;但由于架构优美&#xff0c;笔者认为还是可以经…

CF280D-k-Maximum Subsequence Sum【模拟费用流,线段树】

正题 题目链接:https://www.luogu.com.cn/problem/CF280D 题目大意 一个长度为nnn的序列&#xff0c;mmm次操作 修改一个数询问一个区间中选出kkk段不交子段使得和最大 1≤n≤105,1≤m≤2105,1≤k≤201\leq n\leq 10^5,1\leq m\leq 2\times 10^5,1\leq k\leq 201≤n≤105,1≤…

数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)

虽然作业还没有做完&#xff0c;但是我还是放不下它&#xff0c;对此&#xff0c;我只想说&#xff1a; 今天你对作业爱理不理&#xff0c;明天它就让你补到飞起 DP先放放&#xff0c;我们要雨露均沾练习上手&#xff1a;乘法逆元题目题解代码实现曹冲养猪?&#xff08;互质的…

总结:8.9 模拟(枚举搜索)

文章目录前言考场流程T1 fansT2 huarongT3 meetT4 truth复盘T1 fansT2 huarongT3 meetT4 truth总结前言 25分… 主要的原因&#xff1a; 几乎到了考试结束才看到本次是搜索模拟&#xff01;直接当全盲的模拟做的&#xff0c;T1和T4受到极大影响贪了。几乎已经是老生常谈&…

【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链

luogu 1477 [NOI2008] 假面舞会 容易发现&#xff1a; 如果图中没有环&#xff0c;那么面具种数一定是所有联通块内最长链之和&#xff0c;最少为 \(3\) 。 如果有环&#xff0c;则面具种数一定是所有环的大小的最大公约数。 那么只要求出每一个联通块内的最长链与环即可。 由…

开发.NET Core NuGet包并实现CI/CD

实际开发中我们需要对一些公共类库进行开发&#xff0c;并基于Jenkins进行CI/CD&#xff08;CI:持续集成&#xff0c;CD:持续部署&#xff09;,其他项目通过NuGet引用。上文讲述了如何搭建本地NuGet服务器并发布NuGet包&#xff0c;这里不再赘述。CI/CD流程如下图&#xff1a;首…

acwing221 龙哥的问题

acwing221 龙哥的问题 文章目录题目&#xff1a;题解&#xff1a;代码&#xff1a;题目&#xff1a; 题解&#xff1a; 代码&#xff1a; #include <bits/stdc.h> using namespace std; typedef long long ll;int phi(int x) {int ansx;for(int i2;(ll)i*i<x;i)if(x%…

AT2363-[AGC012C]Tautonym Puzzle【构造】

正题 题目链接:https://www.luogu.com.cn/problem/AT2363 题目大意 给出nnn&#xff0c;要求构造一个字符串sss&#xff0c;使得能够找出恰好nnn个子序列使得这个子序列能划分成前后相等的两份。 要求∣s∣≤200|s|\leq 200∣s∣≤200&#xff0c;字符集为[1,100][1,100][1,1…

8.10模拟:贪心、最优化思路

文章目录前言最大的收获&#xff1a;考场流程T1 alignmentT2 flowerT3 reformatT4 inverse复盘T2 flowerT3 reformatT4 inverse总结前言 305分 今天考得还算不错&#xff01;awa &#xff08;冷静&#xff0c;明天数据结构还是要先写暴力&#xff09; 因为数据结构的题就是为了…

DP专练3:征途

虽然只有1道题&#xff0c;但是含金量还是够够di 文章目录题目题解代码实现题目 题解 我们直接对答案输出格式进行处理&#xff1a;设第 iii 天走的路程为 aia_iai​&#xff0c;总路程为 S∑i1nleniS\sum_{i1}^nlen_iS∑i1n​leni​&#xff0c;那么 v∑i1m(ai−Sm)2mv∑_{i1…

云时代的.NET

编程语言从最初的0101机器码到汇编语言再到面向对象的编程&#xff0c;不断的发展&#xff0c;整个发展趋势呈现高内聚、低耦合、可重用、可理解的特点。最早编程是用机器码&#xff0c;人的大脑不像电脑&#xff0c;无法处理0101&#xff1b;后来汇编语言还是太费解&#xff0…

P6295-有标号 DAG 计数【多项式求逆,多项式ln】

正题 题目链接:https://www.luogu.com.cn/problem/P6295 题目大意 求所有nnn个点的弱联通DAGDAGDAG数量。 1≤n≤1051\leq n\leq 10^51≤n≤105 解题思路 先不考虑弱联通的限制&#xff0c;求nnn个点的DAGDAGDAG数量。 设为fif_ifi​&#xff0c;那么有式子 fn∑i1n(ni)2i(…

研究性学习:APP的隐私问题

文章目录写在前面背景&#xff08;problem&#xff09;一个实例(example)手机App用户输入隐私数据的识别与检测技术研究&#xff08;solution&#xff1f;&#xff09;&#xff08;官方&#xff09;概览背景介绍4.系统设计隐私政策引言1.收集信息2. 信息使用3. 信息披露4. 信息…

DP专练4:[SCOI 2010]股票交易(单调队列优化dp)

昨天晚上&#xff0c;初见它时&#xff0c;月黑风高&#xff0c;一个电脑&#xff0c;一支笔&#xff0c;一个人 今天秋高气爽&#xff0c;再一瞥&#xff0c;回眸间 我又来了&#xff0c;honey题目题解代码实现题目 题解 首先这种 iii 天与前面 jjj 天有关联&#xff0c;而…

【做题记录】[NOIP2016 普及组] 魔法阵

P2119 魔法阵 2016年普及组T4 题意&#xff1a; 给定一系列元素 \(\{X_i\}\) &#xff0c;求满足以下不等式的每一个元素作为 \(a,b,c,d\) 的出现次数 。 \[\begin{cases}X_a<X_b<X_c<X_d \\ X_a-X_b2\times (X_d-X_c) \\X_b-X_a<\dfrac{X_c-X_b}{3}\end{cases} \]…

P3812 【模板】线性基

P3812 【模板】线性基 题目描述 给定n个整数&#xff08;数字可能重复&#xff09;&#xff0c;求在这些数中选取任意个&#xff0c;使得他们的异或和最大 题解&#xff1a; 把所有数insert进入线性基&#xff0c;把线性基中所有元素xor起来 ans 代码&#xff1a; #incl…

“被狗啃”的按钮引发的开源社区信任危机

昨天&#xff0c;在国外民众还在欢度圣诞期间&#xff0c;开发者社区却对 Antd 开发团队发起了连番的炮轰。一觉醒来&#xff0c;他们发现由自己参与设计的、公司内网、办事系统等网页上&#xff0c;有一些按钮的上面多了一团白色的“积雪”&#xff0c;在白背景下&#xff0c;…