摘要:
Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会。当然,她会选择最方便的地点来举办这次集会。每个奶牛居住在 N(1<=N<=100,000) 个农场中的一个,这些农场由N-1条道路连接,并且从任意一个农场都能够到达另外一个农场。道路i连接农场A_ 阅读全文
摘要:
Description 在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠。然而,FJ的草坪非常脏乱,因此,FJ只能够让他的奶牛来完成这项工作。FJ有N(1 <= N <= 100,000)只排成一排的奶牛,编号为1...N 阅读全文
摘要:
Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地。FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当的贫瘠,不能用来放牧。并且,奶牛们喜欢独占一块草地的 阅读全文
摘要:
Description 在创立了她们自己的政权之后,奶牛们决定推广新的货币系统。在强烈的叛逆心理的驱使下,她们准备使用奇怪的面值。在传统的货币系统中,硬币的面值通常是1,5,10,20或25,50,以及100单位的货币,有时为了更方便地交易,会发行面值为2单位的硬币。 奶牛们想知道,对于一个给定的货 阅读全文
摘要:
Description 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天。旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇。 很幸运地,奶牛们找到了一张详细的城市地图,上面标注了城市中所有L(2 <= L <= 1000)座标志性建筑物(建筑物按1..L顺次编 阅读全文
摘要:
Description 农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食. 每一头牛只喜欢吃一些食品和饮料而别的一概不吃.虽然他不一定能把所有牛喂饱,他还是想让尽可能多的牛吃到他们喜欢的食品和饮料. 农夫JOHN做了F (1 <= F <= 100) 种食品并准备了D (1 <= D <= 100 阅读全文
摘要:
题目链接 建立0~k共k+1层图,用dis[x][d]表示x到源点(此题为1)将d条道路距离降为0的距离,dijkstra跑的话因为从堆顶取出的就是已经确定的,因此当从堆顶取出的元素是n时,就可以直接返回并输出了。 用了堆优化,注意每次从堆顶取出元素后如果p.w!=dis[p.to][p.d],说明 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
题目链接 分析:题目要求一个连通图的从1到n的严格次短路,我们只需要在跑最短路的时候顺便判一下次短路是否能够被更新即可。 dis[x][0]表示1到x的最短路,而dis[x][1]则表示次短路,需要分成三类讨论: dis[x][0]+e[i].w<dis[to][0],此时dis[x][1]是原最短 阅读全文
摘要:
题目链接 分析:因为每个事件的代价(也就是时间)是一样的,因此很容易想到应该是贪心。但是这里我们换一种思路来做:不是从大往小选,而是从前往后选,当时间不够用时就把利润最小的舍弃掉加入当前事件的,所以这里我们要先把事件按照第一维截止时间从小到大,第二维利润从小到大排序,然后枚举1~n,开一个利润从小到 阅读全文
摘要:
题目链接 很明显的求区间最大最小值问题,可以用st表做,不过ccz 大爷教我用zkw线段树来解决这种问题,感觉很好用>< 对于1~n的序列,我们先转化成0~n-1,(方便之后的xor),然后求一个最小的mx=(1<<i)使得mx>=n,这样就保证了是一棵满二叉树,叶子结点为0~mx-1。 然后考虑对 阅读全文
摘要:
题目链接 中文翻译版题目 ps:两个略有不同,原题数据范围是n<=3e5,且数据保证输入的b是a的祖先。 算法:ccz 大爷自创,大概就是并查集+启发式合并+平衡树维护。 分析: 先dfs预处理出每个点的深度,然后对于每个点都建立一棵平衡树来储存以这个点为起点的路径,按照第一关键字终点的深度从小到大 阅读全文
摘要:
题目链接 我们用sum[i]表示前i个工厂的产品数之和,b[i]表示x[i]*p[i]的前缀和,因此第j+1~i个工厂的产品运到第i个工厂的代价就是 (sum[i]-sum[j])*x[i]-(b[i]-b[j])+ci[i] 最后f[i]的状态转移方程即为: f[i]=f[j]+(sum[i]-s 阅读全文
摘要:
题目链接 第一道自己推的斜率优化dp>< 首先要明确一点:装进同一个容器的toys一定要是连着的几个(否则的话可以直接贪心)-->之前理解错题意WA了一次...... 用sum[i]表示前缀和,f[i]表示前i个装进容器的最小费用, 容易知道 f[i]=max(f[i],f[j]+(sum[i]-s 阅读全文
摘要:
题目链接 真是一道神题(大家普遍认为是去年NOIP最难的一道so......),然而之前并没有写过关于树上差分的题目,所以自己想了一晚上+一早上都没能想出来(搞的心神不宁T^T)->还是太弱 题解感觉没什么必要发了,网上的都差不多吧(都是nlogn的写法),需要的话可以看一下yy dalao的题解, 阅读全文
摘要:
题目链接 判断一个图是否为强联通图,只要tarjan求出强联通分量的个数,若个数大于1则不是连通图,tarjan的模板题。 1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm> 5 #define 阅读全文
摘要:
题目链接 题目大意: 人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天 阅读全文
摘要:
题目链接 题目大意是说要求一个最小正整数x使得ax%b=1。那么这个形式很容易联想到的就是乘法逆元,因为1%b=a/a%b=1,所以x就是a关于b的最小正整数逆元,用扩欧求一下就可以了。 注意求出来的x不一定是最小正整数答案,还要进行一步(x%b+b)%b的操作。 代码: 1 #include<cs 阅读全文
摘要:
题目链接 题目的大意就是要求把一个数划分为m(1<=m<=n)个数相加之和的方案数(答案取模1e9+7)。 容易想到答案就是sum(C(n-1,i)(0<=i<=n-1)),也就是2^(n-1)(组合数第n行的所有数的和为2^(n-1))。 既然答案是2n-1,第一反应应该是快速幂取模。很可惜,这里 阅读全文