Atcoder刷题小记

1. 2019.4.27 agc016d

一道很坑的题。

首先判无解,求出异或值后排个序就可以。

然后直接让\(a_i\rightarrow b_i\)并查集维护,注意离散化和判重,答案加上联通块个数即可,注意细节即可。

原文地址:https://www.cnblogs.com/Pro-king/p/10778299.html

时间: 2024-08-28 17:20:52

Atcoder刷题小记的相关文章

【刷题小记23】取石子

描述 一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子.游戏的规则是这样的.设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利.我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么? 输入 第一行是一个正整数n表示有n组测试数据 输入有不到1000组数据,每组数据一行,有两个数N和M,之间用空格分隔.

AtCoder刷题记录

神仙AtCoder思维量巨大,很适合我用来提高智商qwq ARC066C Addition and Subtraction Hard 首先要发现两个性质. 加号右边不会有括号 显然,有括号也可以被删去. \(op_i\)和\(A_{i+1}\)之间只会有一个括号 有多个括号的话只保留最外边那个,显然答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道

【刷题小记28】大数阶乘

描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0<m<=5000) 输出 输出m的阶乘,并在输出结束之后输入一个换行符 分析:很明阶乘的数比较大,用int会溢出,所以采用int数组的方法,用数组的元素来保存每一位,根据乘法的相乘规则,用数组元素的每一位去乘迭代 #include <iostream> #include <cstring> #include <cstdlib> using na

【刷题小记67】三角形面积

描述 给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积 输入 每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标.(坐标值都在0到10000之间) 输入0 0 0 0 0 0表示输入结束 测试数据不超过10000组 输出 输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位) 分析:用向量法简单,向量的叉乘在定义上有:两个向量进行叉乘得到的是一个向量,方向垂直于这两个向量构成的平面,大小等于这两个向量组成

【刷题小记】用数组模拟约瑟夫环

问题描述: n 个人围城一圈,第1个人从1开始报数,报数到m的人出列,然后从下一个人开始又从1开始报数,重复游戏n-1次,每次淘汰1人,最后剩下的人就是胜利者. 实心方法: 这是约瑟夫环问题,可以用链表实现,我在这里用数组实现,具体分析如下: 用到变量:以n=8,m=4为例说明 r:控制循环次数 i:用于记录每次出列的人位置,从1变化到8再到1 j:用于控制报数,从1变化到4,在到1.... 图1 图2 图3 图4 图5 图6 图7 图8 注意的地方: 1)模拟报数过程,从1开始报数,达到4后,

LintCode刷题小记491

题目: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 样例: 11, 121, 1, 12321 这些是回文数. 23, 32, 1232 这些不是回文数. 分析: 回文数就是反转后和自身一样,可利用java中StringBuffer中reverse()这一函数进行操作. 下面给出代码: 1 public class Solution { 2 /** 3 * @param num a positive number 4 * @return true i

【刷题小记66】分拆数

[转载请注明出处]http://blog.csdn.net/mingyong_blog/article/details/39252363 描述 现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y. 输入 第一行输入一个整数n,代表有n组测试数据. 接下来n行每行输入一个正整数k 输出 按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合 思路分析 关键是怎么处理1/k=1/x+1/y,由于对除法不好处理,这个式子中有3个除法,所以转化成乘法的形式处理,转成成

【刷题小记71】独木桥上的旅行

描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量.我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数.现在请写一个程序,读入独木舟的最大承载量.旅客数目和每位旅客的重量.根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果. 输入 第一行输入s,表示测试数据的组数: 每组数据的第一行包括两个整数w,n,80<=w<=200,1<=n<=300,w为

【刷题小记48】小明的调查作业

描述 小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己.他先用计算机生成了N个1到1000之间的随机整数(0<N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成"去重"与"排序"的工作. 输入 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N