上一页 1 2 3 4 5 6 7 8 ··· 18 下一页
摘要: Move 题意 有k个体积相同的箱子,有个憨憨有固定的装箱策略,每次都只装可以装的重量中最大的东西,求箱子的最小提及 分析 看起来可以二分,但由于他的装箱策略有点蠢,所以只在宏观上满足单调性,在特别小的区间没有单调性,比赛的时候也想到了没有单调性,但是没想清楚在宏观上满足单调性,所以写了二分没过,就 阅读全文
posted @ 2019-08-25 12:47 tttttttttrx 阅读(122) 评论(0) 推荐(0) 编辑
摘要: subsequence 1 题意 给出两个数字串s,t,求s的子序列中在数值上大于t串的数量 分析 数字大于另一个数字,要么位数多,要么位数相同,字典序大,位数多可以很方便地用组合数学来解决,所以只剩下了位数相同的情况,如何实现呢,我们考虑定义状态dp[i][j][0/1]分别表示s串前i个字符中长 阅读全文
posted @ 2019-08-25 12:38 tttttttttrx 阅读(167) 评论(0) 推荐(0) 编辑
摘要: maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想怎么优化复杂度,我们可以使用状压dp,对于一个集合,并且对于任意一个点,这个点要么不在该集合的最大独 阅读全文
posted @ 2019-08-25 00:14 tttttttttrx 阅读(137) 评论(0) 推荐(0) 编辑
摘要: generator 2 题意 给出$x_0,a,b,p$,有方程$x_i\equiv (a x_{i 1}+b)(\% p)$,求最小的i,使得$x_i=v$,不存在输出 1 分析 经过公式运算可以知道,当a!=1时,由等比数列求和我们可以知道,$v=x_n=x_0 a^n+b \frac{a^n 阅读全文
posted @ 2019-08-24 23:47 tttttttttrx 阅读(140) 评论(0) 推荐(0) 编辑
摘要: generator 1 题意 给出$x_0,x_1,a,b$已知递推式$x_i=a x_{i 1}+b x_{i 2}$,出个n和mod,求$x_n$ (n特别大) 分析 比赛的时候失了智,一直在想怎么把10进制转化成二进制来求,实际上可以换一种想法,既然转化不成二进制,那么直接就用十进制倍增行吗? 阅读全文
posted @ 2019-08-24 23:33 tttttttttrx 阅读(130) 评论(0) 推荐(0) 编辑
摘要: array 题意 给出一个[1,n](n using namespace std; const int maxn=1e5+4; const int inf=0x3f3f3f3f; int tr[maxn 1; build(o 1; if(p 1; int ans=inf; if(ky){ ans=q 阅读全文
posted @ 2019-08-24 21:34 tttttttttrx 阅读(111) 评论(0) 推荐(0) 编辑
摘要: number 题意 给一个数字串,问有几个子串是300的倍数 分析 dp写法:这题一看就很dp,直接一个状态dp[i][j]在第i位的时候膜300的余数是j左过去即可。这题比赛的时候样例老是少1,后面发现是中间忘记加上了,铁憨憨,以后一定要冷静,分析状态,找到少的那部分。 include inclu 阅读全文
posted @ 2019-08-22 18:39 tttttttttrx 阅读(102) 评论(0) 推荐(0) 编辑
摘要: free 题意 给出一个带权联通无向图,你需要从s走到t,你可以选择k条变让他们的权值为0问从s到t的最小权值是多少? 分析 思考一下,如果不带k条白嫖这个条件,那么这就是一个简单的dji就搞定了,我们再来看k的范围1000 直接乘上dji的复杂度还能过,空间也开的下,所以直接一个二维dji就搞定了 阅读全文
posted @ 2019-08-22 18:34 tttttttttrx 阅读(164) 评论(0) 推荐(0) 编辑
摘要: meeting 题意 一个树上有若干点上有人,找出一个集合点,使得所有人都到达这个点的时间最短(无碰撞) 思路 就是找树的直径,找直径的时候记得要找有人的点 include include include using namespace std; define pb push_back define 阅读全文
posted @ 2019-08-22 18:21 tttttttttrx 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Magic Line 题意 给出n(偶)个整点 整点范围1000,找出一条直线,把n个点分成均等的两部分 分析 因为都是整数,并且范围比较小,所以直接按x排序找到在中间那一部分,并且把中间那一部分的点按照左右点的分布情况,分成两部分即可。如何分呢,因为范围比较小,所以可以找一条斜率特别极限的直线把其 阅读全文
posted @ 2019-08-22 18:14 tttttttttrx 阅读(118) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 18 下一页