最开始想的暴力DP是把天数作为一个维度所以怎么都没有办法优化,矩阵快速幂也是$O(n^3)$会爆炸. 但是没有想到另一个转移方程:定义$f[i][j]$表示每天都有值的$i$天,共消费出总值$j$的方案数.然后答案就是. 所以每次维护前缀和就可以$O(1)$转移了. 注意前缀和的初值. #include<bits/stdc++.h> #define LL long long #define mod 998244353 using namespace std; int n, m; LL d; L…
题目传送门(内部题138) 输入格式 输入数据第一行为两个整数$d,n$. 第二行$d$个非负整数$a_1,a_2,...,a_d$.     接下来$n$行,每行$d$个整数,表示一个坏点的坐标.数据保证坏点在网络范围内,且不会是点$A$或点$B$. 输出格式 一个整数,为从点$A$移动到点$B$的不同的路径数对$10^9+7$取模后的值. 样例 样例输入: 2 12 11 0 样例输出: 数据范围与提示 题解 先来考虑$n=0$的情况,利用组合数学,答案就是: $$ans=(\sum\lim…
考场上几乎是一看就看出来轮廓线叻...可是调了两个小时打死也过不了手出样例!std发下来一对,特判对的啊,转移对的啊,$dp$数组竟然没有取max!!! 某位考生当场死亡. 结果下午又请了诸位dalao来看为什么剩下wa两个点!结果数组开小. 某位考生再次死亡. #include<bits/stdc++.h> #define RG register using namespace std; ][(<<)+], cnt[(<<)+]; ][];////////不开够影响很…
题目链接 1.对于简单的版本n<=500, ai<=50 直接暴力枚举两个点x,y,dfs求x与y的距离. 2.对于普通难度n<=10000,ai<=500 普通难度解法挺多 第一种,树形dp+LCA 比赛的时候,我猜测对于不为1的n个数,其中两两互质的对数不会很多,肯定达不到n^2 然后找出所有互质的对数,然后对为1的数进行特殊处理.(初略的估计了下,小于500的大概有50个质数,将n个数平均分到这些数中,最后大概有10000*50*200=10^7) 对所有的非1质数对,采用离…
Solution 注意取模!!! Code #include<bits/stdc++.h> #define mod 1000000007 #define LL long long using namespace std; int n, a, b; LL mpow(LL a, LL b) { LL ans = ; , a = a * a % mod) ) ans = ans * a % mod; return ans; } LL fac[], inv[], l[], t[]; void init…
3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1033  Solved: 480[Submit][Status][Discuss] Description Input Output Sample Input 4 25 35 15 4540 20 10 30 Sample Output 4 HINT 输入的2*n个数字保证全不相同. 还有输入应该是第二行是糖果,第三行是药片 考虑dp两个数组排序,可以求出有m组糖…
传送门 思路 大佬都说这是套路题--嘤嘤嘤我又被吊打了\(Q\omega Q\) 显然,这题是要\(DP\)的. 首先思考一下性质: 为了方便,下面令\(k=\frac{n+k}{2}\),即有恰好\(k\)组糖果比药片大. 显然,\(a,b\)数组都要先从小到大排序.(\(a\)是糖果,\(b\)是药片) 考虑\(a_i\)造成的影响: 1.若它匹配了一个比它小的\(b\),则对于\(a_j,j>i\),它匹配比它小的\(b\)的方案数少了\(1\). 2.若它匹配了一个比它大的\(b\)--…
传送门 首先,关于\(Min-Max\)容斥 设\(S\)为一个点的集合,每个点的权值为走到这个点的期望时间,则\(Max(S)\)即为走遍这个集合所有点的期望时间,\(Min(S)\)即为第一次走到这个集合的期望时间,题目所求为\(Max(S)\)很难算于是转化为求\(Min(S)\) 设\(f_u\)为点从点\(u\)开始游走第一次到达\(S\)的期望时间,那么有\[f_u=1+\sum_{(u,v\in E)}\frac{f_v}{deg_v}\] 如果\(u\in S\),那么\(f_u…
传送门 思路 大部分是感性理解,不保证完全正确. 不能算是神仙题,但我还是不会qwq 这题显然就是求:把每一棵树分成若干条链,然后把链拼成一个环,使得相邻的链不来自同一棵树,的方案数.(我才不告诉你们我这一行都没推出来呢) 可以发现后面那步只和每棵树被分成了几段有关,所以第一步可以先求出每棵树分成几段的方案数. 具体方法:设\(dp_{x,i,0/1/2}\)表示\(x\)子树被填满,共用\(i\)条链,\(x\)所在的链处于 {只有\(x\)一个点/有一条从下面到\(x\)的链/有从下到\(x…
题目传送门(内部题8) 输入格式 一行三个整数$n,m,k$. 输出格式 一行一个整数表示答案.对$998244353$取模. 样例 样例输入 3 7 3 样例输出 数据范围与提示 对于10%的数据,$1\leqslant n,m,k\leqslant 10$.对于40%的数据,$1\leqslant n,m,k\leqslant 1,000$.对于70%的数据,$1\leqslant n,m,k\leqslant {10}^5$.对于100%的数据,$1\leqslant n\leqslant…