摘要:
一开始以为先取need条最短的白边就行了。。然而那样子的话可能图根本没法联通= = 网上题解讲的挺清晰的。。就是二分把全部白边加上mid,然后看mst里面有多少条白边。有need条白边的时候再把加上的值减去,就是答案了。 但可能出现取不了need条白边的情况(二分mid取到>need条,二分mid+ 阅读全文
摘要:
根据ccz181078大爷的题解可得(QAQ,每次肯定是断掉连续一行||一列的栅栏。。。 贪心地想,一个格子与外面联通,显然是先把短的边界断掉(就像mst那样 但是比较蛋疼的是,因为我们每次断的时候,有一些点可能已经联通了,所以有的栅栏不用断>_< 如果我们断了x列栅栏,并且之前有断过行的栅栏,那么 阅读全文
摘要:
如果权值是在点上。。那就显然高斯消元了。。。 所以先用高斯消元求出经过每个点的概率,经过某条无向边边(u,v)的概率就是(f[u]/d[u])+(f[v]/d[v])...(f[]表示经过点的概率,d表示点的度数 然后按照概率贪心地给权值就行了 阅读全文
摘要:
启发式合并链表。。 我写的是链式邻接表那种写法= = 记录下每个节点上的颜色,颜色相同的就塞进同一个链表,每次合并两个链表的时候,就遍历其中一个,如果某节点两边颜色和另一个链表的相同就减一下答案。 然后每次如果遍历节点数少的那个链表时间复杂度就是O(nlogn)的了。。 但因为节点数少的那种颜色不一 阅读全文
摘要:
正解是trie树。。。在树上跳来跳去什么的 然而在企鹅qq那题的影响下我写了hash。。。 添加一个字母到一个串,就相当于另一个串删对应位置上的字母。 改变某个位置上的字母,就相当于两个字符串删掉同一个位置上的字母。 所以要记录的东西也不多。。存一下每个串删掉每个位置上的字母后的hash值并排序,然 阅读全文
摘要:
模拟退火。。 随机每个数是属于哪一组的就可以了。。 阅读全文
摘要:
看到半平面交吓傻了。 Po姐教你模拟退火乱搞233 模拟退火横坐标,然后塔的高度二分一下就行了。 然而交上去一直tle= =。。。。把模拟退火那部分改得和标程一模一样还是跪。。 最后真相是二分的时候double精度会炸(掀桌。。。然而标程不知为啥用double活得好好的(虽然随便随机一个数据就能卡。 阅读全文