D. Secret Santa(构造)

首先n点n边,是一个基环树,

可以观察得到其实最大值是不变的

剩下的人自己随便找个人匹配即可

所以关键是构造一个方案解决匹配到自己的情况

找到所有没送出礼物的人,然后直接匹配,如果匹配到自己

因为没有送出礼物的人想送出礼物的人被选了,才没送出

所以可以换一下,让当前这个没送出礼物的人送给想送出礼物的目标,然后让原本送给目标的人怂给当前这个没有送出礼物的人即可

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
int n,m;
vector<int> g[N];
int a[N];
int vis[N],mach[N];
void solve()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];vis[i]=0;mach[i]=0;}int ans=0;for(int i=1;i<=n;i++){if(vis[a[i]]) continue;vis[a[i]]=i;mach[i]=a[i];ans++;}cout<<ans<<"\n";vector<int> res;for(int i=1;i<=n;i++){if(vis[i]==0) res.push_back(i);}int p=1;//mach第i个人喜欢的那个人 vis a[i]选的人的编号for(auto it:res){while(mach[p]) p++;//mach[p]=it;if(p==it){swap(mach[p],mach[vis[a[p]]]);vis[a[p]]=p;}}for(int i=1;i<=n;i++){cout<<mach[i]<<" ";}cout<<"\n";
}signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t=1;cin>>t;while(t--) solve();
}

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

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

相关文章

配置静态 Eth-trunk

1、需求 1&#xff09;交换网络中存在2个 VLAN – 10 和 20 2&#xff09;每个VLAN的IP地址为&#xff1a;192.168.xx.0/24&#xff08;xx为 vlan 号&#xff09; 3&#xff09;对交换机之间的链路进行链路捆绑&#xff0c;增加互联带宽 4&#xff09;确保同 VLAN的 PC 之间互…

【Web实战】浅谈reactor netty httpclient请求解析过程

目录 0x00 前言 0x01 "畸形scheme"HTTP请求 0x02 其他 0x00 前言 Reactor Netty HttpClient 是 Reactor Netty 框架提供的一个用于进行异步 HTTP 请求的客户端库。它基于 Reactor 框架&#xff0c;采用响应式编程模型&#xff0c;允许以非阻塞的方式执行 HTTP 请…

如何通过RA过程识别Redcap UE?

以下是38.300中的描述 RedCap UE可以通过发送MSG3/MSGA的特定LCID识别&#xff0c;可选条件是通过MSGA/MSG1的PRACH occasion/PRACH preamble识别&#xff0c;根据这段描述&#xff0c;通过MSG3/MSGA的识别是必须项&#xff0c;而MSGA/MSG1的识别过程是可选项。如果通过MSGA/MS…

三极管基础知识

三极管 基本概念应用电路 基本概念 三极管 NPN 和PNP 电流方向 PNP是从e 流向 b c NPN是从 b c流向e 应用电路 箭头出发方向的电极比箭头指向方向的电极&#xff0c;高0.7v才导通。 NPN控制下游是否接到地&#xff0c;PNP控制上游的电源能否接过来。

笔试题之指针结合数组的精讲2

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

【Python大数据笔记_day11_Hadoop进阶之MR和YARNZooKeeper】

MR 单词统计流程 已知文件内容: hadoop hive hadoop spark hive flink hive linux hive mysql ​ input结果: k1(行偏移量) v1(每行文本内容)0 hadoop hive hadoop spark hive 30 flink hive linux hive mysql map结果:k2(split切割后的单词) v2(拼接…

webpack plugin

1、基本写法及使用 这里用到 emit 钩子 及make 钩子&#xff0c;前者是串行后者是并行 /*** 1.webpack加载webpack.config.js中所有配置&#xff0c;此时就会new TestPlugin()&#xff0c;执行插件的constructor2.webpack创建compiler对象3.遍历所有plugins中插件&#xff0…

灵活运用Vue 3中的setup函数—深入解析Composition API

新建项目&#xff0c;项目主入口为App.vue&#xff08;主组件&#xff09;&#xff0c;新建child.vue&#xff08;子组件&#xff09;。 1.1 setup 执行 时机问题 1.在主组件里引入子组件和ref&#xff1a; import {ref} from vue import child from ./components/child.vue2…

uni-app项目细节记录

js字符串插值 使用反引号,内容使用${参数} url:/pages/login/index?name${this.name}&passwd${this.passwd}

2024年企业软件定制开发必须了解的4大趋势

根据Statista的统计数据显示&#xff0c;全球企业级软件市场占据主导地位&#xff0c;预计到2028年市场规模将接近3760亿美元。企业应用软件市场持续稳健增长&#xff0c;即使在经济不景气时期也能够持续增长&#xff0c;彰显出软件解决方案对提高企业运营效率和盈利能力的重要…

HTML实现简易计算器

随便写的&#xff0c;可能有bug&#xff0c;可以在评论区指出哈。 HTML代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>AI简易计算器</title> </head> <body> <table id"c…

【剑指Offer】44.数字序列中某一位的数字

题目 数字以0123456789101112131415...的格式作为一个字符序列&#xff0c;在这个序列中第2位&#xff08;从下标0开始计算&#xff09;是2&#xff0c;第10位是1&#xff0c;第13位是1&#xff0c;以此类题&#xff0c;请你输出第n位对应的数字。 数据范围&#xff1a;0≤n≤…

【小黑送书—第九期】>>重磅!这本30w人都在看的Python数据分析畅销书:更新了!

想学习python进行数据分析&#xff0c;这本《利用python进行数据分析》是绕不开的一本书。目前该书根据Python3.10已经更新到第三版。 Python 语言极具吸引力。自从 1991 年诞生以来&#xff0c;Python 如今已经成为最受欢迎的解释型编程语言。 pandas 诞生于2008年。它是由韦…

Mysql中自增主键是如何工作的

自增主键的特点是当表中每新增一条记录时&#xff0c;主键值会根据自增步长自动叠加&#xff0c;通常会将自增步长设置1&#xff0c;也就是说自增主键值是连续的。那么MySQL自增主键值一定会连续吗&#xff1f;今天这篇文章就来说说这个问题&#xff0c;看看什么情况下自增主键…

第三阶段学习beiqi3

滑行回馈力矩给定修改力矩 if(1 Vehicle_cmd.cmdmode.data.slip_feedback_flag)//滑行回馈{motor_regen_power EV_MCU_Para.field.Motor_regen_power_slip_level;//滑行固定功率在 10kw *****11.22 这里除去2 5kw motor_regen_trq_lmt _IQmpyI32(motor_regen_power, 9550)…

postman设置接口关联这样做,薪资直接涨3k

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…

kubernetes资源管理

kubernetes资源管理 文章目录 kubernetes资源管理1.资源管理介绍2.YAML语言介绍3.资源管理方式3.1 命令式对象管理3.2 命令式对象配置3.3 声明式对象配置扩展&#xff1a;kubectl在node节点上运行 1.资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0…

c语言编程(模考3)统计字符串中数字字符的个数

统计字符串中数字字符的个数 #include<stdio.h> int main(){char inputString[100];int digitCount 0;printf("请输入一个字符串&#xff1a;");scanf("%s",inputString);for(int i0;inputString[i]!\0;i){if (inputString[i]>0&&inpu…

jQuery的学习(一篇文章齐全)

目录 Day29 jQuery 1、jQuery介绍 2、jQuery的选择器 2.1、直接查找 2.2、导航查找 3、jQuery的绑定事件 案例1&#xff1a;绑定取消事件 案例2&#xff1a;模拟事件触发 4、jQuery的操作标签 tab切换案例jQuery版本&#xff1a; 案例1&#xff1a; 案例2&#xff…

Thread的常用方法

一&#xff0c;常用方法 二&#xff0c;案例 父类&#xff1a; package ThreadLianXi;import ThreadLianXi.ZhiLeiA;public class Name {public static void main(String[] args)throws Exception{Thread t1 new ZhiLeiA("1号");//修改名字t1.setName("1号&quo…