题目小P和小R是一对非常好的朋友,今天他们在玩一个模拟建设类游戏。游戏中共有nn个城市,通过mm条双向道路连接。第ii条道路连接了城市aiai和bibi。不幸的是,在一次巨大的灾难以后,这mm条道路全部损坏了。修复第ii条道路需要cici天。把这些道路全部修复的代价可能太大,小P和小R只希望某kk个城市之间两两恢复通行。游戏中,小P和小R拥有很多的修路工人,所以如果一个修路方案包含多条道路,那么这些道路可以同时开工。整个工程完工的时间就是这个工程中需要时间最长的道路的用时。小P和小R为了给你加大难
原创 2021-07-13 11:24:42
189阅读
题目在一个数轴上一共有 NN 段闭区间,它们可能有交。现在你需要对它们黑白染色。对于每个位置 xx ,假设覆盖它的黑色区间个数为 bxbx,覆盖它的白色区间个数为 wxwx,要求满足 |bx−wx|≤1|bx−wx|≤1。区间 [l,r][l,r] 覆盖位置 xx 当且仅当 l≤x≤rl≤x≤r。给出任意一种方案即可。输入格式第一行两个整数 NN。接下来 NN 行,每行两个整数 li,rili,ri,表示一个 [li,ri][li,ri] 的区间。输出格式一共 NN 个 0/10/1 数,其
原创 2021-07-13 11:25:22
116阅读
题目题目描述有 nn 个物品排成一行,每个物品有一个价值,所有的价值都是小于 13 的正整数。有 qq 次操作。每次操作输入 l,r(1≤l≤r≤n)l,r(1≤l≤r≤n),你需要对于第 ll 个至第 rr 个物品:对于 k=0,1,2,…,12k=0,1,2,…,12 输出:从这些物品中任选若干个(可以是0个),总价值 mod13=kmod13=k 的方案数,对 2 取模;将第 ll 个物品的价值增加 1(如果原价值是 12 则将其价值修改为 1);将第 rr 个物品的价值增加 1(如果原价
原创 2021-07-13 13:46:06
180阅读
我们考虑可并堆维护,从深到浅贪心选取。 用priority_queue启发式合并的话,是60pts: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #incl
原创 2021-07-16 14:00:22
89阅读
题目在一块平原上有一头大象。平原被分成n×mn×m个格子。初始时大象位于(1,1)(1,1)。每一秒,大象会移动到一个相邻的格子上(四连通),但不会移动到平原外面。由于你视力不好,你无法知道大象每次移动到哪个格子上。你可以使用火球术来攻击地面。每次释放火球术,
原创 2021-07-19 10:59:34
166阅读
分析 把船当作点 练级当作边 发现一个连通块大于n-1的边的条数的奇偶性影响这个连通块的答案 于是并查集维护即可 代码
转载 2019-09-30 13:21:00
61阅读
2评论
题目statement你走到了一个十字路口。这个路口有nn个红绿灯,并且有固定的周期。在一个周期中,每个红绿灯恰好一次由红变绿,恰好一次由绿变红(并且都是在整数时刻发生改变)。一个红绿灯如果当前是红色则会显示还需要多久变绿。你观察了m次这个红绿灯系统,并且记下了每次观察的结果。但非常不幸的是,你忘记了每次观察的时间。你想知道能否通过你记录下的信息确定它的周期,如果可以则输出周期,否则输出−1−1。input description第一行两个整数n,mn,m。接下来mm行每行nn个整数xijxij
原创 2021-07-13 11:24:51
142阅读
题目在一个 N×NN×N 的水池四周,有 4N4N 个人想要在这里钓鱼,他们围着水池站了一圈,水池四边每个格子都有一个人。一个人在钓鱼的时候,他需要把钓竿垂直于他所在的水池边线放置,并且他的钓竿不能与其他人的钓竿有交叉。每个人的钓竿长度不一定相同,但是有趣的是,处于同一边的人的钓竿长度是有序的,从左到右可能是升序,也可能是降序。同时,相对的两个人的鱼竿长度和是不超过 NN 的。现在,他们想要知道最多能够允许多少人同时钓鱼。输入格式第一行一个整数 NN。第二行 NN 个整数 a1,a2,⋯,an
原创 2021-07-13 11:25:18
115阅读
题目描述 现在有n个字符串,你需要从中选出一些字符串,使得选出的字符串能被分组,满足每组大小为2,且可以从每组选出该组的两个字符串的一个非空公共后缀,使得每组选出的串互不相同。 输入格式 第一行一个整数n。接下来n行,每行一个字符串。 输出格式 输出一个整数,表示答案。 样例输入 2TARPOLPROL 样例输出 2 数据范围 对于所有数据,1≤n≤5000,|Si|≤50,其中|Si| 表示输
原创 2021-07-16 14:00:04
219阅读
【问题描述】 有n座山,m只猫和p个工作人员。山从左往右编号为1∼n,山i和i−1之间的距离是di米。 有一天,猫都到山上去玩了:第i只猫会到山hi去,并一直玩到时间ti,之后就在那座山等待工作人员来接它。 每个工作人员的线路都是从1走到n,并带走沿途任意只在等待的猫。工作人员速度为每单位时间1米,不能在山上停留。 例如,假设有两个山丘,d2=1,有一只猫要到山2去,在t=3结束它的玩耍。如果工
原创 2021-07-16 14:03:10
102阅读
分析 我们发现实际只要计算a[i]>b[j]和a[i]<b[j]哪种多即可 代码
转载 2019-09-30 13:04:00
47阅读
2评论
题目现在有一棵树,小AA想会选一个点出发,沿着树上的边不回头的行走。小AA不喜欢走太久,所以他最多只会行走kk条边。小AA也不喜欢重复,所以他想要知道最多有多少种行走方式。两个方式不同当且仅当经过的边集不同。输入格式第一行两个整数,n,kn,k,nn表示树的节点个数。第二行一共n−1n−1个整数,第ii个数fi+1fi+1表示i+1i+1的父亲。输出格式一行,一个整数,表示行走方案数。样例Input5 21 1 2 2Output8数据规模与约定对于10%10%的数据,满足
原创 2021-07-13 11:24:36
108阅读
题目这里一个网格状的房间,一共有nn列,但是有正无穷的行。小AA一开始在第00行,可以任意选择所在的列。现在他每次可以向下走一格(行号+1),或者向右下走一格(行列同时+1)。在行走过程中,小AA需要不断消耗体力。具体来说,每经过一个第ii列的格子,需要消耗AiAi的体力。现在小AA会一共行走mm次,每次会给出目标坐标第xx行第yy列,请你求出走到那所消耗的最小体力。输入格式第一行一共两个整数,nn和mm。第二行一共nn个整数,AiAi。接下来mm行,每行两个整数,xx和yy。输出格式m
原创 2021-07-13 11:24:37
65阅读
题目【问题描述】一张图上有编号从1到n的n个点,这些点的颜色可以设置,可以设置成黑色或者红色,这些点之间有m条连线,如果连线两端的点颜色是一样的,那么连线就是虚线,如果连线两端的点颜色不一样,那么连线是实线。现给你这张图,图上n个点和m条线,请你通过设置点的颜色将其中一条实线改成虚线,而其它的线为实线,并得出有几条线可以这样改。【输入格式】第一行两个空格分隔的正整数n和m,表示图中有n个点和m条线。接下来m行,第i行由两个空格分隔的正整数Ai和Bi(1<=Ai<=N,1<=Bi&
原创 2021-07-13 11:24:39
103阅读
题目statement有nn个房间,编号为1到nn。有n−1n−1个隧道,第ii个隧道连接房间ii和i+1i+1。隧道在正常情况下是关闭着的,要打开第ii个隧道需要有aiai个人在房间ii按住开关或者bibi个人在房间i+1i+1按住开关。按开关的人不能进行任何其它操作(比如移动或者同时按另一个开关),一旦他们松开开关,隧道会立刻关上。在房间1有一个隧道通往出口,要打开这个隧道需要mm个人按住开关。你想知道在保证这个隧道在任何时刻都不会被打开的情况下,最多可以在这些房间中安排多少个人(你可以指定他们
原创 2021-07-13 11:25:12
140阅读
题目DescriptionNN个精灵和NN个矮人正在举行摔跤大赛。NN个矮人顺时针依次站在一个圆周上。第ii个精灵将要和第AiAi个矮人摔跤。然而,由于主办方的失误,AA中可能有相同的元素。精灵将按照一定的顺序入场。入场的xx号精灵将优先和AxAx号矮人摔跤,但如果当前矮人已经和其他精灵摔过跤了,xx号精灵将尝试和顺时针方向的下一个矮人摔跤,以此类推,直到找到一个还没有摔过跤的矮人。ii号矮人的力量值为PiPi,ii号精灵的力量值为ViVi。所有的力量值两两不同。在摔跤时,力量值高的一方一定会获胜。
原创 2021-07-13 11:25:16
132阅读
题目Description平面上有 n 个不同的点。一共有 Q 次询问,每次指出一个左下角在 (x1,y1)、右上角在 (x2,y2) 的矩形(注意可能退化成线段或者点),考虑这个矩形内部或者边界上的所有点,询问一共有多少不同的 x 坐标以及多少不同的 y 坐标。注意每次询问给出的 (x1,y1,x2,y2) 并不是矩形的真实参数。假设上一个询问的两个答案分别是 ansx 和 ans
原创 2021-07-13 11:26:52
89阅读
题目思路代码#include<bits/stdc++.h>#define ll long longusing namespace std;int main(){ int q; scanf("%d",&q); while (q--) { ll n; scanf("%lld",&n); for (ll i = 2; i <= n;...
原创 2021-07-13 14:51:25
77阅读
【题目描述】 老虎和蒜头是好朋友。 众所周知,蒜头经常给老虎出一些题目,而老虎也常常被难倒,作为捧杯之王的老虎难免心有怨怼。今天,老虎发现了蒜头的一个序列 a​ 。虽然老虎不知道这个序列是用来做什么的,但老虎还是希望搞点破坏——他计划把序列 a​ 全部变成 0​ 。 然而,对蒜头的序列进行操作绝不是容易的事情。具体来说,老虎每次可以选择两个位置 i,j(i≠j) ,将 ai 和 aj 变为 ai
原创 2021-07-16 14:02:25
123阅读
题目http://noi.ac/contest/358/problem/2036思路显然 f(a, b) 必不可能等于 0,因为 i = p 1 时一定有 ai ≡ 1 ≡ bp 1(%p)。定义小于质数 p 的正整数 a 关于 p 的阶为使得 ak ≡ 1(%p) 的最小的正整数 a,记作 ord(a)。考虑如何求一个数 a 的阶。显然 %p 意义下的阶一定是 p 1 的约数,所以我们可以对 p−1 质因数分解,然后求阶关于 p−1 的每个质因子的幂次。具体就是枚举p−1 的每个质因子 qi
原创 2021-07-13 11:24:45
62阅读
  • 1
  • 2
  • 3
  • 4
  • 5