随笔分类 - 算法竞赛
ACM/ICPC/CCPC
    
摘要:CF 1968 G1.Division + LCP (easy version) (*1900) 二分+哈希 题目链接 题意: 给你一个字符串 \(s\) , 请你把字符串分割成 \(k\) 份。使得这些字符串的最长公共前缀的长度最大。 思路: 最长公共前缀的长度具有单调性,因此可以进行二分。考虑如
        阅读全文
                
摘要:CF 1971 F. Circle Perimeter (*1600) 思维 数学 题目链接 题意: 找出平面直角坐标系中所有到原点距离 \(d\) , 满足 \(r\le d <r+1\) 的所有整数坐标点。 思路: 注意到所有的都是对称出现的,因此我们只需要找出第一象限的点然后乘 \(4\) 即
        阅读全文
                
摘要:CF 1971 G. XOUR (*1700) 思维 题目链接 题意: 给你一个长度为 \(n\) 的数组 \(a\) , 如果两个数按位异或的结果小于4,那么你可以将它们交换。输出能够操作得出的字典序最小的数组。 思路: 我们注意到异或的结果小于4,也就是说只有最后两位不同的就可以进行交换,那么我
        阅读全文
                
摘要:CF 1977 C. Nikita and LCM (*1900) 数论 题目链接 题意: 给你一个长度为 \(n(n\le2000)\) 的数组 \(a\) , 如果 \(a\) 的子序列满足子序列的 \(LCM\) 不包含在 \(a\) 中,那么这个子序列是特殊子序列。求特殊子序列的最长长度? 
        阅读全文
                
摘要:CF 1978 D. Elections (*1600) 思维 题目链接 题意: \(n\) 个人进行选举,第 \(i\) 个人有 \(a_i\) 个粉丝投票给他,另外有 \(c\) 个人没想好投给谁。他们会投给编号最小的人。投票最多的人将赢得选举(相同票数,编号选的人获胜)。现在你可以将一些候选人
        阅读全文
                
摘要:CF 1975 D Paint the Tree(*1700) 贪心 题目链接 题意: 有一棵有 \(n\) 个节点的树。初始时所有节点都是白色的。现在顶点 \(a\) 和 \(b\) 上有两个棋子 \(p_a\) 和 \(p_b\) 。现在可以每次进行以下操作: 将 \(p_a\) 移动到相邻节点
        阅读全文
                
摘要:CF 1980 F1 Field Division (easy version) (*1900) 题目链接 题意: 有一个大小为 \(n \times m\) ($2 \le n,m\le 10^9 $)的矩形。其中有 \(k\) 个喷泉,你现在可以从左侧或者上侧任意一个不是喷泉的单元格出发,每次只
        阅读全文
                
摘要:CF 1981 C Turtle and an Incomplete Sequence(*1800) 构造 题目链接 题意: 给定一个长度为 \(n\) 的序列 \(a\) ,要求把 \(a\) 中所有的 \(-1\) 替换为任意正整数,且满足对于所有的 \(1 \le i \le n\), 那么 
        阅读全文
                
摘要:CF 1980E Permutation of Rows and Columns(*1600) 思维 题目链接 题意: 给你两个大小为 \(n*m\) 的矩阵,其中元素的是 \(n*m\) 的排列,你可以任意交换两行或者任意交换两列。 求是否通过操作使得矩阵 \(a\) 变成矩阵 \(b\) 。 思
        阅读全文
                
摘要:Codeforces Round 946 (Div. 3) 题解 A. Phone Desktop 贪心 优先考虑放 \(2\times2\) 的,然后剩下的补 \(1\times 1\) 的。注意需要上取整即可。 #include<bits/stdc++.h> using namespace st
        阅读全文
                
摘要:Codeforces Round 945 (Div. 2) A. Chess For Three 签到 题意: 三个人两两下棋,胜者得 \(2\) 分,败者得 \(0\) 分,平局双方各得 \(1\) 分。 现在给你三个人的得分(已经升序排序)。 求最多平局个数,如果得分不合法输出 \(-1\)。 
        阅读全文
                
摘要:Ring Road 2 题目链接 思路:先考虑什么情况下会相交,对于两条道路 \((x_1,y_1)\) 和 \((x_2,y_2)\) 。这里默认 \(x < y\) ,显然 当 $x2 < x1<y2 $ 并且 \(y1<x2\) || \(y1>y2\) 时(\(x1\) 和 \(y1\) 互
        阅读全文
                
摘要:P3007 [USACO11JAN] The Continental Cowngress G 题目链接 思路:2-SAT模板,经典的或条件,那么直接建图即可,对于可行解,我们直接枚举每个方案支持和反对,然后染色判断即可。 代码: #include<bits/stdc++.h> using names
        阅读全文
                
摘要:Catowice City 题目链接 思路: 第 \(i\) 个人认识第 \(j\) 只猫,所以选了第 \(i\) 个人就必须选第 \(j\) 个人,那么我们连一条 \(i\) 指向 \(j\) 的边。 那么同一个连通分量中就必须同时选择。考虑不能对其他猫产生影响,我们可以选择一个没有出边的强连通分
        阅读全文
                
摘要:P5782 [POI2001] 和平委员会 题目链接 思路: 因为 \(u\) 和 \(v\) 矛盾,即 \(\lnot (u \land v)\)。 转化成 \(\lnot u \lor \lnot v\) 。那么根据 \(2-SAT\) 标准处理方式。转化为: \((u \rightarrow 
        阅读全文
                
摘要:P4171 [JSOI2010] 满汉全席 2-SAT 题目链接 思路: 2-SAT模板题,我们将满席定为1,汉席定为0.那么建边即可。判断同一道菜满汉是否在强联通分量中即可。 注意多测清空!!! 代码: vector<int> e[N]; stack<int> stk; int dfn[N],lo
        阅读全文
                
摘要:2-SAT 2-SAT,简单的说就是给出 \(n\) 个集合,每个集合有两个元素,已知若干个 \(<a,b>\),表示 \(a\) 与 \(b\) 矛盾(其中 \(a\) 与 \(b\) 属于不同的集合)。然后从每个集合选择一个元素,判断能否一共选 \(n\) 个两两不矛盾的元素。显然可能有多种选择
        阅读全文
                
摘要:P5607 [Ynoi2013] 无力回天 线段树+线性基 题意: 给你一个长度为 n 的整数序列 \(a_1\), \(a_2\), \(\ldots\), \(a_n\) ,你需要实现以下两种操作,每个操作都可以用四个整数 \(opt\;l\;r\;v\) 来表示: \(opt=1\) 时,代表
        阅读全文
                
摘要:P4839 P 哥的桶 线段树+线性基 题目链接 题意: 现在有 \(n\) 个桶,需要支持2种操作。 \(1\) \(k\) \(x\) :将一个价值为 \(x\) 的球放进 \(k\) 号桶。 \(2\) \(l\) \(r\) :求出在 \(l\) 号桶到 \(r\) 号桶之间拿球,价值异或和
        阅读全文
                
摘要:P4301 [CQOI2013] 新Nim游戏 线性基 题目链接 题意: 两个人进行游戏,有 \(n\) 堆火柴,每堆有若干根,在第一个回合中,双方可以直接拿走若干个整堆的火柴,可以一堆不拿,但不可以全部拿走。接下来的回合进行 \(Nim\) 游戏。 现在你是先手,第一回合如何拿才能保证获胜,并且让
        阅读全文
                

浙公网安备 33010602011771号