日常黑Pokeman Go Description Branimirko是一个对可爱精灵宝贝十分痴迷的玩家。最近,他闲得没事组织了一场捉精灵的游戏。游戏在一条街道上举行,街道上一侧有一排房子,从左到右房子标号由1到n。 刚开始玩家在k号房子前。有m个精灵,第i只精灵在第A[i]栋房子前,分值是B[i],以及它在T[i]秒内(含)存在,之后消失。Branimirko可以选择移动至相邻的房子,耗时
Description 自从 Y 君退役之后,她就迷上了吃鸡,于是她决定出一道吃鸡的题。 Y 君将地图上的所有地点标号为 1 到 n,地图中有 n − 1 条双向道路连接这些点,通过一条 双向道路需要一定时间,保证从任意一个点可以通过道路到达地图上的所有点。 有些点上可能有资源,Y 君到达一个有资源的点后,可以选择获取资源来使自己的武力值增 加 wi,也可以选择不获取资源。如果 Y 君获取了
题目 给定一个多项式$ (ax + by)^k$ ,请求出多项式展开后 $xnym $项的系数。 分析 根据二项式定理,有 ( a x + b y ) k = ∑ i = 0 k C k i a i b k − i x i y k − i (ax+by)^k=\sum_{i=0}^kC_k^ia^ib^{k-i}x^iy^{k-i} (ax+by)k=i=0∑kCkiaibk−ixi
题目 有n栋楼房,两栋楼房可以看见当且仅当中间的楼房不高于两栋楼房,使用炸弹可破坏某一栋楼房,问使用K枚炸弹使得能看见楼房i的楼房数的最大值最小。 分析 树形dp,容易得出 f [ x ] [ i + j ] = m i n ( f [ x ] [ i + j ] , m a x ( f [ l ] [ i ] , f [ r ] [ j ] ) + b [ x ] ) f[x][i+
题目 有两个问题,首先求1到 n n n的最大流(不解释了),然后求1到n使最大流扩展 k k k的费用,每扩展一个最大流,扩展一次边的费用 分析 当然如何做第二个问题,可以重新建一个汇点流量是最大流 + k +k +k,费用为0,并且原来的边再建一次从 u u u到 v v v,费用为该边的费用,流量无限跑一次最大流,then就讲完了 代码 #include <cstd
题目 有 n n n个点,求每个点的单源最短路径的最短和 分析 其实跑 n n n遍 s p f a spfa spfa或 d i j k s t r a dijkstra dijkstra堆优化就行了 代码 #include <cstdio>#include <queue>struct node{int y,w,next;}e[2901];int n,m,dis[801]
题目 求 ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) i=1∑nj=1∑mlcm(i,j) 分析 原式= ∑ i = 1 n ∑ j = 1 m i j g c d ( i , j ) \sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i,j)} i=1∑nj=1
洛谷链接 分析 首先给出朴素的方程( s [ i ] = ∑ j = 1 i x [ j ] s[i]=\sum_{j=1}^{i}x[j] s[i]=∑j=1ix[j]) d p [ i ] = m i n { d p [ j ] + a ( s [ i ] − s [ j ] ) 2 + b ( s [ i ] − s [ j ] ) + c } dp[i]=min\{dp[j]+
题目 Nim游戏进阶,第一轮可以拿走若干堆的石子,之后与Nim游戏相同问先手是否必胜,是的话输出第一轮拿走的最小值,不是输出-1 分析 那么 N i m Nim Nim游戏先手必胜当且仅当A1 xor A2 xor…xor An不等于0,那么就要让把等于0的情况去掉,那么可以用到线性基,当无法插入也就说明异或和为0,所以累计答案,但是题目又说取最小值,那么从大到小排序,让大的早点被取掉
题目 给你一个由小写拉丁字母组成的字符串 s s s。我们定义 s s s的一个子串的存在值为这个子串在 s s s中出现的次数乘以这个子串的长度。对于给你的这个字符串 s s s,求所有回文子串中的最大存在值。 分析 回文自动机模板,不解释 代码 #include <cstdio>#include <cstring>#define rr register#define m
题目 分析 首先如果不带修改操作那么就是一道主席树题目,但是既然有了修改,那么还必须用上树状数组维护,时间复杂度 O ( n l o g 2 n ) O(nlog^2n) O(nlog2n) 代码 #include <cstdio>#include <cctype>#include <algorithm>#define rr registerusing namespace
题目 问多少个 n n n位数满足数位从左到右数字不下降且为 P P P的倍数 分析 慢慢填坑吧 代码 #include <cstdio>#define rr registerusing namespace std;typedef long long ll;const ll mod=999911659;ll n,p,rep,cnt[501],pos[501],dp[50