
解法十分的interesting
stone41123
一名苦逼的OIer,欢迎交朋友。。。
展开
-
洛谷 P1195 口袋的天空
日常再水一篇(逃题目背景小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空。有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖。题目描述给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在一起。现在小杉要把所有云朵连成K个棉花糖,一个棉花糖最少要用掉一朵云,小杉想知道他怎么连,花费的代价最小。输入输出格式输入格式: 每组测试数据的第一行有三个数N,M,K(1<=N<=1000,原创 2017-08-23 21:27:32 · 359 阅读 · 0 评论 -
洛谷 P2391 白雪皑皑(并查集)
传送门 这个题真的很神奇。 数据10000000,所以肯定是线性做法,然后我就不会了,一看题解,并查集,看完了之后,发现真的很巧妙,就是像一个链表一样用并查集。 copy一段: 这道题可以用并查集来打(然而我一开始脑抽竟然用了双向链表-.-),从最后开始往前进行涂色,因为显然后面的优先级大于前面,后面的会将前面涂的颜色覆盖。这样我们只要快速查找下一个没被涂的点就行了,因此我想到了并查集,只原创 2017-09-14 18:36:39 · 294 阅读 · 0 评论 -
洛谷 P2759 奇怪的函数
传送门 这题我算是0分,因为这题没有部分分,我也不会,思路太不好想,一看题解,就知道了,觉得好简单,唉。 做法:题目里的其实就是这个式子xx>=10n−1x^x>=10^{n-1} 用数学知识简单变形:x∗(log10x)>=n−1x*(log_{10}x)>=n-1 然后可以发现左边递增,二分做就好了。 代码:#include<iostream>#include<cstdio>#in原创 2017-09-11 13:57:16 · 254 阅读 · 0 评论 -
清北学堂-D1-T3-roadwork
这个题可以容易想出O(n2∗a)O(n^2*a)的dp方程和状态,但是时间空间都不够。 dp:f(i,j,k)−>左i,右j,时间k,的最小发怒人数f(i,j,k)->左i,右j,时间k,的最小发怒人数 然后做法十分神奇,我真的学到了。 我们这时可以将状态和值互换,将时间和发怒人数互换,就是这样: dp:f(i,j,k,0/1)−>左i,右j,发怒人数k,0当前左/1当前右,的时间f(i,j原创 2017-10-02 00:30:10 · 496 阅读 · 0 评论 -
[jzoj5406]【NOIP2017提高A组模拟10.10】Tree
Description给定一颗n 个点的树,树边带权,试求一个排列P,使下式的值最大 其中maxflow(s; t) 表示从点s 到点t 之间的最大流,即从s 到t 的路径上最小的边权Input第一行一个整数n,表示点数 下接n - 1 行,每行三个数u, v, w 表示一条连接点u 和点v 权值为w 的边Output输出一行一个整数,表示答案Sample Input2 1 2 2333原创 2017-10-20 14:18:00 · 444 阅读 · 0 评论 -
[bzoj1018]:[SHOI2008]堵塞的交通traffic
传送门 我自从月考完了,就在调这个题。。 首先,先看一下官方题解。 算法:线段树 先贴一个连接:https://www.luogu.org/problemnew/show/U16516 这个是分测试点,可以看自己对了多少分。 然后开始算法解释。 一部分一部分来。这里是data的声明,初始化(很重要),还有输出调试。 data里的l,r代表所管理的区间 数组a代表存储的联通信息 具原创 2017-12-03 14:28:47 · 449 阅读 · 0 评论 -
[codeforces 301D]:Yaroslav and Divisors
传送门 题目大意: 给定一个[1,n]的排列,有m次询问: 每次给定Li,Ri'>Li,RiLi,RiLi,Ri,询问有多少对q,w∈[Li,Ri]'>q,w∈[Li,Ri]q,w∈[Li,Ri]q,w\in [Li,Ri]使得Pq|Pw'>Pq|PwPq|PwP_q|P_w 题解: 这个题太妙辣 大概就是把每个询问拆成两个,具体题解可以看这里: https://www原创 2018-01-24 19:51:25 · 301 阅读 · 0 评论