[原标题] 1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MB Submit: 554  Solved: 194 [id=1799" style="color:blue; text-decoration:none">Submit][id=1799" style="color:blue; text-decoration:none">Status] Descr…
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. Input   Output   Sample Input 10 19 Sample Output 3 HINT [约束条件]1 ≤ a ≤ b ≤ 10^18 Source Day1 类似hdu 4389 #pragma com…
Description 找出$[L, R]$ 区间内有多少数, 各位数字和 能整除原数 Solution 枚举每个可能的数字和, 进行数位DP即可 , 水爆 Code #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ; ], mod; ll sum[][][]; ll dfs(int pos, int ad, int r, b…
Link: BZOJ 1799 传送门 Solution: 一句话的题目,看得爽,做得烦 一般这类和数位相关的都是数位$dp$吧 不过一开始还是感觉不太可做,毕竟每个数模数不同 但要发现,模数最高也只可能为$9*19=171$, 于是只要将数按照他们的数位和(即模数)分类计算即可 这样便暴力解决了模数不同的问题 设$dp[sp][sum][rmd][lmt]$表示: 枚举到第$sp$高位,剩下的数的和位$sum$,此时对$mod$余$rmd$时的方案数(lmt表示是否达到上界) 感觉数位$dp$…
bzoj 1081 [Ahoi2009] chess 中国象棋 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1801 状态比较难设,的确没想到. 不关心第几列出现是否出现了棋子的个数.而是看看上一行第几列出现了1或2个棋子 利用组合巧妙解决问题. 设\(f[i][j][k]\)表示第i行有j列有1个棋子.有k行有2个棋子. 那么为空的即为\(m - j - k\) 状态转移方程: 1.这一行什么都不放: \(f[i][j][k] +…
[题意]给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.1 ≤ a ≤ b ≤ 10^18 [算法]数位DP [题解] 感觉这种方法很暴力啊. 枚举数位和1~162(不能枚举0,不然会模0,相当于除0),记忆化f[pos][sum][val],sum表示当前数位和,val表示数字取模枚举的数位和. 每次sum+i和(val*10+i)%MOD转移. sum用减法优化,即记忆化(MOD-sum),但是枚举过程中都要memset,导致效率低下,记忆化效果很差. 要什么方法才能跑1.3s…
一开始没想出来..一看题解 我艹直接枚举数位的和啊.....怪不得给50s. 还是太蠢. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ],ret=,dp[][][],vis[][][],tot=; void get_bit(long long x) { ret=; ;x/=;} } long long dfs(lo…
给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.1<=a<=b<=1e18. 注意到各位数字之和最大是153.考虑枚举这个东西.那么需要统计的是[0,a-1]和[0,b]内各位数字之和为x且能整除x的数字个数. 那么我们只需要数位dp一波即可. 令dp[pos][i][x]表示有pos位且数字之和为x的数mod P=i的数字个数. 则转移方程显然可得. # include <cstdio> # include <cstring> # include…
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2076  Solved: 885[Submit][Status][Discuss] Description A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤i≤M)条道路连接了vi,ui两个中转站,那么中转站vi可以通过该道路到达ui中转站,如果切断这条道路,需要代价ci.现在B国想找出一个路径切断方案…
1800: [Ahoi2009]fly 飞行棋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1800 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各…