题3:摆渡车 【题目描述】 有 n n n名同学要乘坐摆渡车从人大附中前往人民大学,第 i i i位同学在第 t i t_i ti分钟去等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费m分钟(同学上下车时间忽略不计)。摆渡车要将所有同学都送到人民大学。 凯凯很好奇,如果他能任意安排摆
@旅行@ @题目描述@@题解@@代码@@end@ @题目描述@ 小 Y 是一个爱好旅行的 OIer。她来到 X 国,打算将各个城市都玩一遍。 小Y了解到, X国的 n 个城市之间有 m 条双向道路。每条双向道路连接两个城市。 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路。并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市。小 Y
@铺设道路@ @题目描述@@考场上的思路@@比较正常的题解@@end@ @题目描述@ 春春是一名道路工程师,负责铺设一条长度为 n 的道路。 铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n 块首尾相连的区域,一开始,第 i 块区域下陷的深度为 di。 春春每天可以选择一段连续区间 [L,R],填充这段区间中的每块区域,让其下陷深度减少 1。在选择区间时,需要保
题目大意: 题目链接:https://www.luogu.org/problemnew/show/P5022 给出一棵 n n n个点 n n n或 n − 1 n-1 n−1条边的图,从任意点开始遍历的方法的字典序。 思路: 很明显,开始肯定是要在点 1 1 1,这样才能保证字典序最小。 建图时要先排序,保证邻接表访问的顺序到达点是升序。也是为了保证字典序最小。 然后分类讨论。
李巨连续AK三场了,我跟南瓜打赌李巨连续AK七场,南瓜赌李巨连续AK五场。 DAY1 T1 qu 按题意拿stack,queue和priority_que模拟即可。特判没有元素却要取出的情况。 T2 ming 贪心发现ddl越小的任务越早完成越好,排序更新答案即可。 T3 zi 可能是昨天看了虚树我脑子不太好用,思维僵化的厉害,打算用虚树搞这道题,然后写了180+,连样例都懒得测知道根本过不了交
上午考了一套sb题,但是没有人AK。李巨290虐场。 下午又考了一套sb题,李巨AK虐场。%%% T1 % 中国剩余定理好像做不了啊,我一直在想如何用CRT做,然后就GG了。 然而正解是bike当初说的“CRT根本没用啊你每次合并两个数就可以了”然而这玩意似乎就叫做EXCRT。 洛谷模板传送门 考虑合并 x=y mod P x=bi mod ai k1*P+y=k2*ai+bi k1*P+k3*
Problem A. divisor 发现x为k可表达一定可以表示成这种形式,如k=3,x=(1/3+1/2+1/6)x。 于是可以搜索k(k<=7)个1/i加起来等于1的情况,如果一个数是这些i的lcm的倍数这个数就是k可表达的。 std并没有给出它的搜索程序,我的搜索写得很不优秀,所以我写搜索写了很久。 一是用double会炸精度,于是我手写了分数类。 然后是搜的时候按从大到小搜,每次会有一
Time Limits: 2000 ms Memory Limits: 524288 KB Description 院子落叶,跟我的思念厚厚一叠;窗台蝴蝶,像诗里纷飞的美丽章节…… Input 小 H 是一个喜欢养花的女孩子。 她买了 n 株花,编号为一里香,二里香……七里香……n 里香,她想把这些花分别种在 n个不同的花盆里。 对于一种方案,第 i 个花盆里种的是 ai 里香,小 H
解法一 把强制选或者不选点看成对权值的修改,转化成动态最大权独立集问题。 树链剖分, f i f_i fi表示 i i i子树的最大权独立集, g i g_i gi表示 i i i子树强制不取 i i i的最大权独立集。 s f i , s g i sf_i,sg_i sfi,sgi表示 i i i轻儿子 f , g f,g f,g的和。如果 u u u是 v v v的重儿子,转移方程为
题解 其实想到一种 O ( k 2 ) O(k^2) O(k2)的做法还是比较简单的, 枚举两个点有没有边直接相连,用并查集来维护一下。 但是对于k比较大的情况下,就应该考虑别的做法。 当 k > m k>\sqrt m k>m 的时候,就枚举边, 记录一个点不能到达那些点, 然后用一个哈希值来表示这个点不能到达点, 然后判断不能到达相同点集的点的数量加上不能到达的点集大小是否为n,
质因数分解 //质因数分解int prime[MAXN], tim[MAXN], cnt;void Divide(int N){printf("%d = ", N);for(int i = 2; i * i <= N; i++) if(N % i == 0){prime[++cnt] = i;while(N % i == 0) N /= i, tim[cnt]++;}if(N > 1) p