
洛谷
mxYlulu
ACM燃烧我的卡路里
展开
-
洛谷11月月赛 I & MtOI2019 Ex Div.2 C
题意已知构成凸多边形的条件为,任意n−1n-1n−1条边之和大于最后一条边。我们用最小的加起来比较能不能超过最大的,来判断是否可以构成凸多边形。一个合法方案的价值为选的边数,求总期望。一共有nnn条边,第iii条边权值为iii题解首先是肯定可以dpdpdp的,但是dpdpdp是三维的,计算出前iii位能组成的和。如何优化呢?首先,正难则反,我们可以计算出所有方案都合法,则期望为∑i...原创 2019-11-11 11:20:16 · 199 阅读 · 0 评论 -
【LGR-062】洛谷10月月赛 III div.2 C D
小C与桌游题意有向无环图,走到一个能够更新当前走过的点标号最大值的点,就可以加一或者减一。求每次都加能加最多,每次都减能减最少。有趣的题目,满脑子都是哈尔滨重现了!!这种思维题比哈尔滨III简单一点,但是我依然没想出来,虽然已经特别接近了。要求找到一个策略:首先肯定要是拓扑序的走,那么队列有多个点,应该选哪一个呢?当前最大值为MMM,如果比MMM小的点,可以随便放,显然不会影响结果还...原创 2019-11-02 23:24:23 · 251 阅读 · 0 评论 -
【X-Round 4】P5596
题解一开始我尝试固定yyy,但是得到关系式是无限的…所以只能拿到454545我们尝试令y=x+ky=x+ky=x+k,代入原式中:我们可以发现,x=(k+b)(k−b)a−2∗kx=\frac{(k+b)(k-b)}{a-2*k}x=a−2∗k(k+b)(k−b)首先根据原式,k≥0k≥0k≥0其次,我们要保证x≥0x≥0x≥0,所以分子分母必须同号,且k≠a2k≠\frac{a}{...原创 2019-10-21 22:35:44 · 290 阅读 · 0 评论 -
P1983 车站分级
图论的比较有意思的一道题。题意:告诉你车起始站、终点站、停靠站、且火车站有等级之分,低的停了,高的必须停。给你多组数据,让你求解火车等级划分了几级。题解:可以画出一张图。那么对于每个数据,在停靠站和未停靠站之间加有向边。也就是一个>关系。对于最后的图,找过最长的一条路径。【拓扑排序求解】这样加边的过程是n^2的,遍历数据又是N。所以我们通过对于每次加边就设置虚点,这样...原创 2019-04-05 00:46:15 · 188 阅读 · 0 评论 -
P1330 封锁阳光大学
题解:要求的是对点涂色,保证涂色的点不相邻,但是必须只隔一个。【保证涂满】直接暴力涂色0和1,由于存在非连通的情况,需要遍历所有子图。数出0的的个数和1的个数,较少的被加上贡献。输出贡献。如果中途出现冲突,比如下一个涂0但是已经被涂成1。【这种情况假如0是答案,那么目前所在点1是应该涂色但没有涂色的】【1是答案,那么两个1必定是相邻的,不符合】所以一旦出现冲突,答案一定...原创 2019-04-01 14:07:00 · 123 阅读 · 0 评论 -
洛谷P1525 关押罪犯
洛谷P1525 关押罪犯题意:告诉n个人,m对关系,每队关系价值C,通过分配n个人到两个监狱,来使得同一个监狱内的最高价值最小。题解:通过并查集维护一个分配。怎么分配呢,从大到小排序价值,优先把较大的都分到不同监狱,直到出现第一个矛盾直接输出。分到不同监狱=将敌人的敌人和自己分到一个监狱,但是敌人的敌人遍历容易超时,而且还要特殊记录。前1~n和n+1~2n分别表示同一个...原创 2019-04-08 12:38:44 · 191 阅读 · 0 评论 -
删数游戏(单调栈)
P1106 删数问题题意:删去k个数字,使剩下的数字最小。题解:我们考虑两个数字,肯定高位低的数字更小,随后再尽量保证低位小。利用单调栈维护一个n-k长的上升序列,如果新入栈的数比栈顶小就一直出栈直到不小。因为序列要保证长度,每个数只会入栈一次,出栈就删一个数。不过很有可能没删完就结束了。所以循环结束,需要把n-k以上的删完。特判下0。#include<iostre...原创 2019-05-04 02:00:40 · 561 阅读 · 0 评论 -
树形DP的背包问题
树形DP有一类问题是关于选择节点:我们可以用dp[i][0]表示不选,dp[i][1]表示可选可不选。这里我们讨论的是树形dp的背包问题,也就是对节点个数限制,同时要求尽可能的价值极值。我们考虑这样的动态规划方程:dp[i][j+k]=max(dp[i][j+k],dp[i][j]+dp[son][k]);不断用孩子节点更新:你取j个结点,新的孩子结点取k个结点。PS:这里遍历孩子...原创 2019-05-18 23:43:20 · 943 阅读 · 0 评论 -
P3963 [TJOI2013]奖学金
水题但是处理方式值得学习。题意有ccc个同学,有两个属性,成绩和奖学金。选出nnn个人,要求奖学金总额不超过fff,且中位数尽可能大。题解首先呢,中位数是个很难处理的东西,所以如果我们先排序,直接枚举中间那些中位数即可。但是这个时候考虑到奖学金,还需要预处理中位数左右侧n/2n/2n/2小的数的和。用于判断会不会超过fff处理方式是用优先队列存好n/2n/2n/2个,然后逐一比较,...原创 2019-08-01 14:07:51 · 298 阅读 · 0 评论 -
网络流24题之餐巾计划问题
题意简单来说:每天对餐巾数量有一定的要求,用完的变成脏的。脏的可以拿去两个店洗,分别花费aaa天、bbb钱;ccc天、ddd钱。可以留到之后洗,或者买新的花费ppp求最小花费题解显然费用流,如何转换呢?首先最大流必须是合法情况,那么一定餐巾数量够。那么如何体现回收利用呢?就是流量共用。每天设置两个点晚上和早上。早上需要收到xxx个餐巾,连向汇点,最大流就是符合情况的。晚上得到x...原创 2019-08-24 01:42:35 · 179 阅读 · 0 评论 -
Floyd应用:洛谷P1119 灾后重建
题意:每个村庄有自己重建的时间,重建好才能通车。询问第几天x到y的距离最小是多少。【有可能还没建好没通车】题解:考虑Floyd算法的核心->利用中转点进行更新。那么这里只需要对于询问,询问之前建好的村庄依次更新即可。题目给的输入数据都是已经排过序的。代码:#include<bits/stdc++.h>#define FOR(i,l,r) for(i...原创 2019-04-05 00:34:46 · 239 阅读 · 0 评论 -
P2661 信息传递
并查集求解有向图最小环首先有个特殊要求的就是对于图的边是没有长度的。然后我们采取一个简化操作,在找到这个环之间,由于只需要求环的长度,所以对于环的最后一条边,不加入之前先判断指向的点能不能最后指向原点。#include<bits/stdc++.h>using namespace std;int n;int ans=200050;int G[200010];in...原创 2019-03-11 21:20:07 · 162 阅读 · 0 评论 -
洛谷P1309 -瑞士轮
瑞士轮题意很简单,暴力点就是每次弄完都排序就OK了,但只有60分考虑代码重复多余的运算在哪,超复杂度是因为N次排序,但事实上不需要这么多次排序,或者说,每次对于N个队,每个队的胜者分数+1,依然大于排序后面队的胜者,败者+0也是如此。组成两个长度为N的数组,归并排序O(n)合并得出排序结果。第一步排序手写了个heapsort,实际上用sort就可以了,主要是暴力写完第一遍懒得改...原创 2018-09-15 18:02:33 · 281 阅读 · 0 评论 -
P1031 均分纸牌
P1031 均分纸牌这道题我想的方法很麻烦。是一个模拟。模拟的操作:遍历一遍数组,从左到右遇到大于平均值往后分摊,中途遇到大于平均数的数直接都分到这里。遇到小于平均值的,往后叠小于平均值的数,遇到大于的数就分一点过去,直到比平均值差的值都被分摊完。这样是线性的,主要操作是第二步,负的叠起来加上去等价于反向传回来,如果提前遇到大于平均数的就直接先往后分,便于第二步的操作(这就...原创 2018-09-06 23:24:20 · 160 阅读 · 0 评论 -
P1032 税收与补贴问题 + P1100 高低位交换
P1032 税收与补贴问题骚粉色继续了解一下。久违的恶心的题目。是我在交叉模拟试炼场A的最后一道题,也是一直做不下去的题...参考:https://www.luogu.org/problemnew/solution/P1023?page=2https://www.luogu.org/problemnew/solution/P1023解法一:解不等式:准确来说:就是解...原创 2018-09-10 16:09:28 · 315 阅读 · 0 评论 -
P1348 Couple number
P1348 Couple number解法一:粉色骚一点。求完全平方数的个数,需要注意的是:有负数。C=(a+b)(a-b).a+b和a-b显然具有相同的奇偶性C=2k*2i=4*k*i=4的倍数C=(2k+1)*(2i+1)=4*k*i+2k+2i+1=偶数+奇数(2i+1)=奇数证明:N=4K=2K*2=(k+1+k-1)*(k+1-(k-1))=(2k)*...原创 2018-09-10 18:55:37 · 331 阅读 · 0 评论 -
博弈论初章
只是起个头,第一次遇到这样的题目,虽然很简单,但是等到闲下来一定去好好研究类似的问题。毕竟暑期集训好像有考过。P3150 pb的游戏(1)题意:你能够分割一个数成两半,另一个人挑一半继续分割,直至有个人不能分就输了。1是必败态,2是必胜态。假设你拿的是偶数,你分成偶数=奇数+奇数,对面只能拿奇数,并且分成奇数+偶数;这个时候你继续只拿偶数,分成奇数+奇数,分到不能再分输...原创 2018-09-22 01:39:34 · 218 阅读 · 0 评论 -
P1966 火柴排队
P1966 火柴排队题意:求两个为n的序列贡献值最小需要怎么移动才能达到,移动:交换相邻元素,贡献值:(ai-bi)^2。显然可以猜出来,排序过后对应的最小。事实上也可以用反证法证明a<b,c<d=>ac+bd最小我们令上面的序列不动,只动下面的序列,首先得到下面序列应该是怎么样的。用标号来标志原来位置,排序过后,把对应位置赋值到数组上去:上面位置是坐标,下面...原创 2018-09-29 00:00:21 · 247 阅读 · 0 评论 -
交换得来的有序序列
这类题型,一般有两种,一种是交换相邻元素,一种是交换任意元素。交换相邻的最少次数:对于从小到大的每个数,先从第一个的逆序对算起,然后把它往前放到第一个,再到第二个,再继续往最前放,也是加上逆序对。最后其实就等于加上每个数原本的逆序对,因为从大到小的操作,能保证我移动过后,这个元素放到前面也不会增加我其他的逆序对。交换任意的最少次数:对于一系列元素,把元素和其有序时候的位置建立边...原创 2018-09-29 15:35:17 · 295 阅读 · 0 评论 -
POJ 3634 circle of debt
POJ-3634题意:有三个人,a欠b,b欠c,c欠a,同时他们自己身上有钱,1、5、10到100,若干个(会告诉你有多少个)。问最少多少次交换可以还清债务。题解:最终态是互相债务欠的一样多,这样子就不需要还了。解决思路:首先对于每个人都处理一遍dfs找用了多少钱还。不用想也一定是爆炸的。考虑优化。本质优化:从硬币的种类进行搜索。考虑每个硬币谁用了。优化一:假设...原创 2019-02-18 10:54:44 · 763 阅读 · 0 评论 -
洛谷P3915 树的分解
P3915 树的分解题意:将一棵树分成N/K个连通块,每个块有K个点。题解:容易知道,从下往上遍历,连通块一定是个子树,直接dfs遇到满足的连通块计数,并将该子树所含点清零。/*author : mxyluludate : 2019/2/21says : 唯有全力以赴。*/#include<bits/stdc++.h>#define FOR(i,a,b) fo...原创 2019-02-24 23:47:46 · 694 阅读 · 1 评论 -
P1538 迎春舞会之数字舞蹈
P1538 迎春舞会之数字舞蹈依旧是~骚粉色。值得注意的是:这道题里面说的并不是数字前要输出空格,而是数字后。被坑在这里。题意:给出一系列数字,和一个k值,用k大的横线或者竖线表示数字。题解:预处理一下每个数字什么时候要输出,什么时候不要。最多只需要7条线来表示。两种解法:第一种我的,第二种大佬的。但是总体思想一致,只是他的比较简洁。引用:https://www.l...原创 2018-09-05 16:28:47 · 338 阅读 · 0 评论