[AT2306]Rearranging(拓扑序)

news/2024/9/8 4:22:18/

只有luogu

题面(luogu):

有一个$n$个数组成的序列$a_{i}$。

高桥君会把整个序列任意排列,然后青木君可以选择两个相邻的互质的数交换位置。

高桥君希望最终序列的字典序尽量小,而青木君希望字典序尽量大。求最终序列。

思路:

经过一番思考,我们发现我们可以知道的只有“不互质的数之间不能交换”

换句话说也就是两个不互质的数之间的先后是不会反转的

但通过这个我们无法得到任何推论。。。

所以只能从这个唯一条件下手了。

考虑将不互质的数连未定向边

拓扑序就是这几个元素之间的相互顺序。

单个连通块里的处理:

找到连通块里最小的一个元素作为起点之后每次找相连的最小元素继续搜。

所以还请注意一下开始连边的枚举顺序。

多个连通块:

一个堆搞定。

#include<cstdio>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
const int N=2333;
int a[N];
int g[N][N];
int n;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
struct sumireko{int to,ne;}e[N*1000];
int he[N],ecnt;
void addline(int f,int t)
{e[++ecnt].to=t;e[ecnt].ne=he[f];he[f]=ecnt;
}
bool vv[N];
int bi;
int sp[N];
vector<int> to[N];
void dfs(int x)
{vv[x]=1;for(int i=he[x],t;i;i=e[i].ne){t=e[i].to;if(!vv[t]){to[x].push_back(t);dfs(t);}}
}
priority_queue<int> q;
int main()
{freopen("rearranging.in","r",stdin);freopen("rearranging.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+1+n);for(int i=n;i;i--)for(int j=i-1;j;j--)if(gcd(a[i],a[j])!=1)addline(i,j),addline(j,i);for(int i=1;i<=n;i++) if(!vv[i]){bi++;sp[bi]=i;dfs(i);}for(int i=1;i<=bi;i++)q.push(sp[i]);while(!q.empty()){int g=q.top();q.pop();printf("%d ",a[g]);for(int i=0;i<to[g].size();i++) q.push(to[g][i]);}return 0;
}
View Code

转载于:https://www.cnblogs.com/rikurika/p/11314890.html


http://www.ppmy.cn/news/354086.html

相关文章

问题 2306: [蓝桥杯][2019年第十届真题]后缀表达式

题目链接&#xff1a;https://www.dotcpp.com/oj/problem2306.html 这里说明一下后缀表达式(做这个题之前&#xff0c;我不太理解后缀表达式)。 后缀表达式&#xff0c;又称逆波兰式&#xff0c;指的是不包含括号&#xff0c;运算符放在两个运算对象的后面&#xff0c;所有的计…

bzoj2306 [Ctsc2011]幸福路径 倍增 Floyd

题目传送门 https://lydsy.com/JudgeOnline/problem.php?id2306 题解 倍增 Floyd。 令 \(f[i][j][k]\) 表示走了 \(2^i\) 步&#xff0c;从 \(j\) 到 \(k\) 的距离最大值。 然后转移就是 \(f[i][j][k] \max\limits_{l1}^n f[i-1][j][l] p \cdot f[i-1][l][k]\)。 另外要每一…

力扣 每日一题 862. 和至少为 K 的最短子数组【难度:困难,rating: 2306】(前缀和+单调队列)

题目链接 https://leetcode.cn/problems/shortest-subarray-with-sum-at-least-k/ 题目来源于&#xff1a;第91场周赛 Q4 rating: 2306 思路&#xff08;简单版本&#xff1a;假如数组不包含负数&#xff09; 我们首先做一下这题的简单版本【209. 长度最小的子数组】。 假…

BZOJ 2306 幸福路径(DP)

题目链接&#xff1a;http://61.187.179.132/JudgeOnline/problem.php?id2306 题意&#xff1a;给出一个有向图&#xff0c;点有权值 a。初始时在点S。一个人在初始点能量为K1&#xff0c;每走到下一个点能量值乘以p(p<1)&#xff0c;到达一个点u 幸福度为 a[u]*K。求最大的…

PyVisa控制Keithley2306程控电源

1.Pyvisa库的安装 pip install pyvisa 具体参考Pyvisa官方说明 https://pyvisa.readthedocs.io/en/latest/index.html# 2.扫描连接设备 电脑通过GPIB线与K2306连接后,调用Pyvisa查询设备连接设备 READ_BUFFER_SIZE = 4096import pyvisa# 创建pyvisa inst rm = pyvisa.Reso…

FZU2306远征(双指针)

题目链接&#xff1a;fzu2306 解题思路&#xff1a;每个小的最好能依赖于比他大的而自己形成一队&#xff0c;而由于队列的关系&#xff0c;那个大的此时也依赖于下一个&#xff0c;于是最好的排列一定是一大一小交叉的&#xff0c;双指针可以有效地实现这个逻辑。 Code&#x…

bzoj2306 幸福路径 倍增 Floyd

链接&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id2306 题意&#xff1a;一张有向图&#xff0c;每个点有一个权值$w(x)$&#xff0c;给出路径起点求出最大$f(x)sigma(w(x)*p)$&#xff0c;其中&#xff0c;$p$初始值为$1$&#xff0c;每走一步这个值都会乘上…

题目 2306: 蓝桥杯2019年第十届省赛真题-后缀表达式

题目 给定 N 个加号、M 个减号以及 N M 1 个整数 A1, A2, , ANM1&#xff0c;小 明想知道在所有由这 N 个加号、M 个减号以及 N M 1 个整数凑出的合法的 后缀表达式中&#xff0c;结果最大的是哪一个? 请你输出这个最大的结果。 例如使用1 2 3 -&#xff0c;则 “2 …

什么蓝牙耳机牌子好还便宜?适合情人节送礼的蓝牙耳机品牌

现在市面上的蓝牙耳机无论是品牌还是款式&#xff0c;实在是多到数不清&#xff0c;因为技术太成熟&#xff0c;导致产品同质化非常严重&#xff0c;我们在挑选时&#xff0c;也无从下手。很多蓝牙耳机存在音质不好、连接不稳定等等问题&#xff0c;一不小心就踩雷了。为了让大…

送女友什么蓝牙耳机合适?适合送礼的无线蓝牙耳机

蓝牙耳机的出现直至现在&#xff0c;使用的频率越来越高&#xff0c;种类也越来越多&#xff0c;日常使用的&#xff0c;跑步使用的&#xff0c;真的是各种各样&#xff0c;每个品牌的蓝牙耳机主打的特点都是不一样的。那到底怎样挑选一款适合自己的耳机呢&#xff1f;这也难倒…

没有了耳机接口,怎么让手机同时支持充电和听歌?USB-C音频 边听边充 方案了解一下

现在大多安卓手机都取消3.5音频接口&#xff0c;耳机都变成type-c接口&#xff0c;造成了手机没办法边听歌边充电&#xff0c;网上有这种转换器卖&#xff0c;可以解决此问题&#xff0c;那么这些转换器的原理又是什么呢&#xff1f;乐得瑞LDR6023C教你如何实现USB Type-C手机快…

投影仪家用推荐最新?投影仪什么牌子性价比比较高

投影仪最新家用的选择应该是变焦投影仪。 之前聊过一些投影仪的选购事项&#xff0c;基本都是在谈论定焦投影仪&#xff0c;无可否认的是&#xff0c;投影仪这个行业一直在进步&#xff0c;如果想要选购最新的家用投影仪&#xff0c;真的应该了解一下变焦投影仪。 变焦投影仪又…

什么牌子投影仪效果最好?智能投影仪什么牌子好

投影仪市场内产品花样繁多&#xff0c;质量参差不齐。而投影仪自身的参数又五花八门&#xff0c;难免让人看花了眼。 本文希望通过对目前市场内的几款明星产品的讲解来帮助大家直接选到效果最好&#xff0c;品质最高的投影仪。 综合考虑了市场、品牌和消费者等相关因素&#xf…

AC风扇和EC风扇有什么区别?

C风扇和EC风扇之间的区别在于&#xff1a;AC风扇具有交流电&#xff0c;并且在不使其嗡嗡声或嗡嗡声的情况下控制起来非常昂贵。 EC风扇基本上是数字风扇。 它更容易控制。

空调制冷原理

制冷原理 压缩机将气态的氟利昂压缩为高温高压的液态氟利昂&#xff0c;然后送到冷凝器&#xff08;室外机&#xff09;散热后成为常温高压的液态氟利昂&#xff0c;所以室外机吹出来的是热风。 液态的氟利昂经 毛细管&#xff0c;进入蒸发器&#xff08;室内机&#xff09;&a…

空调调节 java,空调怎么调节自动模式

炎热的夏天里&#xff0c;在办公室或者回到家里&#xff0c;我们首先就是将空调打开&#xff0c;凉风袭来&#xff0c;可以缓缓炎热的感觉&#xff0c;但是有时候会觉得&#xff0c;空调开一会就不制冷了&#xff0c;这是为什么呢&#xff1f;空调不制冷其实有很多原因&#xf…

电风扇空调制冷设备公司网站搭建模板

适合做营销行业使用&#xff0c;主要针对空调、制冷机、风扇&#xff0c;空调扇&#xff0c;天花板循环扇等风扇或者制冷设备。 这款模板使用范围极广&#xff0c;不仅仅局限于一类型的企业&#xff0c;你只需要把图片和产品内容。换成你的&#xff0c;颜色都可以修改&#xf…

基于CC2530设计的智能风扇

1. 项目介绍 随着空调降温设备的频繁使用,全球气候不断变暖空调降温设备排放出的物质对环境的影响越来越大。二是人们在熟睡之后经常因为温度太低而感冒或者温度升高而不适,风扇相比空调更加适用于老人儿童和体质较弱的人使用。 通过物联网技术的智能风扇设计可以解决因为睡…

arduino电风扇程序_【NO.7】智能风扇控制器-

1.png (531.67 KB, 下载次数: 206) 2014-9-19 19:19 上传 鉴于目前风扇的普及率还是很高的,很多家庭夏天都还是使用电风扇对人进行降温,而通常晚上过半夜后气温就会下降,在四川这个降温也是很明显的;上半夜由于气温较高,通常风扇风力都会开得比较大,后半夜随着温度的降低…

选择一个风扇

为机箱或机柜设计强制对流冷却系统是一项复杂的任务。然而&#xff0c;它必须正确地进行&#xff0c;以确保封闭电子设备的性能和可靠性。许多不同的热&#xff0c;机械和电气的影响必须考虑这种冷却系统的成功设计。 第一步是确定所需风扇的类型。这将主要基于底盘的设计和允许…