摘要:题目:传送门 题意:有一颗 n 个节点的树,有 n - 1 条边,然后现在需要你构造一个排列 p1,p2,p3......,pn 满足对于任意的 (i, j) 如果节点 i 到节点 j 的最短距离等于 3 ,那么 pi * pj 是 3 的倍数或者 pi + pj 是 3 的倍数. 2 <= n <
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:有 n 个店,一开始你在家,此时 t = 0,你可以花 1 单位时间从你家去任意的一个店,或者从某一个店去到另一个店。假设你在 t = x 的时候到达第 i 个店,那么你需要花 ai*x + bi 的时间在这个店买东西。现在问你在 T 单位时间内最多能去几个店买东西。 1 <= 
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:给你 n 个数,然后你每次操作可以选择任意一个数 a[ i ],让它加 1 或者减 1,问最少需要操作几次,可以使得所有 a[ i ] 的 gcd 大于 1 2 <= n <= 2e5, 1 <= ai <= 1e12 思路: 考虑最后的 gcd = 2,那这样的话只要把所有奇数
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:你有 n 个人,你想从这 n 个人中选 p 个人去到不同的 p 个位置, 选 k 个人作为观众。如果第 i 个人被选为观众他的贡献就是 a[ i ],如果第 i 个人被选为第 j 个位置上的人,那么他的贡献就是 b[ i ][ j ]。问你选 p 个位置上的人和 k 个观众最大的
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:让你构造一个长度为 n 的序列,使得 1 < a1 < a2 < ...... < an <= 1e9,且满足 1 < i < j < k <= n && a[ i ] + a[ j ] = a[ k ] 这样的三元组恰好只有 m 个,如果不能构造输出 -1. 思路: 首先,让所
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:有一个 n 个拐点的曲折的管道,你有一束光射进去(直射),问你最远能射到点的 x 坐标是多大。 1 <= n <= 20 思路:首先需要想到,这条线肯定是经过管道的一个上拐点和一个下拐点。 然后就枚举所有情况就行了。 #include <iostream> #include <s
        
阅读全文
 
        
            
            
摘要:题目:传送门 题意:你起初在(0, 0), 你想去点 (x, y), 你有一个长度为 n 的运动字符串,字符串由 L,R,U,D 组成。问你你需要怎么改字符串,使得你跑完这个运动字符串之后,恰好在 (x, y) 且需 MaxID(你改动的那些字符的最大下标) - MinID(你改动的那些字符的最小下
        
阅读全文
 
        
            
            
摘要:题目: 传送门 题意:有 n 个正方形,倾斜 45 度按顺序放在 x 坐标轴上,然后那些正方形要尽可能的靠近,问排放好之后,你从上往下看,不会被遮住的正方形有哪些。 思路:我们可以算出每个正方形斜放的左右端点的 x 坐标。我们可以枚举前面已经放好的正方形,然后让当前这个正方形和它靠在一起算出当前这个
        
阅读全文
 
        
            
            
摘要:题目: 传送门 题意: 给你一个凸包,定义 dis(Point a, Point b) 为 a 点和 b 点的曼哈顿距离;定义 f(x) 为选定 x 个点,Point1, Point2 ..... Pointx 的 dis(Point 1, Point 2) + dis(Point 2, Point
        
阅读全文
 
        
            
            
摘要:题目: 传送门 题意: 你需要建 n 栋楼,第 i 栋楼最多能建 m[ i ] 层,然后你需要构造一个数组 a 使得对任意 i 满足 1 <= a[ i ] <= m[ i ], 且不能存在 j < i < k and a[ j ] > a[ i ] < a[ k ],也就是说不能同时存在 j 和 
        
阅读全文
 
        
            
            
摘要:题目传送门 题解1 题解2 #include <bits/stdc++.h> #define LL long long #define mem(i, j) memset(i, j, sizeof(i)) #define rep(i, j, k) for(int i = j; i <= k; i++)
        
阅读全文
 
        
            
            
摘要:传送门 题意: 一行有 n 个数字,是 1 ~ n 的一个排列, 现在, 给你 n 个数, 0 代表这个数还没有填好。 然后,现在定义这 n 个数的复杂度是 相邻两个数的奇偶性不同的组数。 例如, 5 1 2 3 4 这一个排列的复杂度是 (1,2),(2,3),(3,4) = 3; 现在问你把那些
        
阅读全文
 
        
            
            
摘要:传送门 题意: 你起初有一支军队,有 k 个士兵,现在,有 n 座城堡, 你若想占领第 i 座城堡,那你至少得有 ai 个士兵才能占领。 占领了 第 i 座城堡, 你可以扩大兵力, 得到 bi 的士兵。 然后你有两种方式使得防御你占领的城堡: 1、在你占领完的时候就留下一个士兵,防御它。 2、有m条
        
阅读全文
 
        
            
            
摘要:题意: 给你一个长度为 n 的序列, 现在按以下方法修改序列: 1、依次修改 A1 A2 A3 A4 A5 ...... AN; 2、当修改 Ai 时, 检查 A1 ~ Ai-1 是否出现过, 若出现过, 则Ai加1,若更新完的Ai仍然在A1 ~ Ai 出现过, 则继续加1,直到未出现过。 输出最终
        
阅读全文