枚举肯定是不行的 ,数位太多 ,会超时 所以用dp递推出以i为首位,位数为j的数字个数dp[i][j]并储存,以空间降低时间 递推过程,高位dp为低位各dp的和,并判断4和62的情况 注:g++环境下 在函数外定义数组初始值是0,在函数内定义数组初始值是随机值 求出0~n和0~m+1之间的数位,相减 ...
分类:
编程语言 时间:
2019-01-27 19:25:01
阅读次数:
174
// luogu-judger-enable-o2 #include using namespace std; const int INF=0x3f3f3f3f; const int maxn=50004; int n,S,T,head[maxn],nxt[maxn],mark[maxn],dep[... ...
分类:
其他好文 时间:
2019-01-27 16:46:14
阅读次数:
173
A. Salem and Sticks 由于长度很小,所以直接暴力枚举最后的长度即可,取最小值即可。 #include<bits/stdc++.h> #define CLR(a,b) memset(a,b,sizeof(a)); using namespace std; typedef long l ...
分类:
其他好文 时间:
2019-01-27 14:42:58
阅读次数:
230
解法 区间dp例题,长度从2开始到n结束起点从1到n,中间枚举的时候是看着左端点右端点与中点的乘积 代码 include include using namespace std; int dp[666][666],num[666]; int main() { ios::sync_with_stdio ...
分类:
其他好文 时间:
2019-01-27 14:37:46
阅读次数:
144
#include using namespace std; struct node { int r; node *next[26]; node() { r=0; memset(next,0,sizeof(next)); } }; node root; int build_trie(string ss... ...
分类:
其他好文 时间:
2019-01-26 15:56:36
阅读次数:
175
" 传送门 " Description 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。 Solution 考虑用SAM,采用较为轻松的姿势 首先中加个特殊符号,把连个字符串接在一起 SAM的每个节点都存下了一些子串,我们分 ...
分类:
其他好文 时间:
2019-01-26 00:19:58
阅读次数:
189
题目 描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N 1次合并后成为一堆。求出总的代价最小值。 输入 有多组测试数据,输入到文件结束。 每组测试数据第一行有一个整数n,表示有n堆石子。 ...
分类:
其他好文 时间:
2019-01-24 17:17:10
阅读次数:
185
题目链接: "戳我" 互不侵犯???这么多种走位的方式,当然没有办法动态规划啦!(反正我不会 网络流可是解决规划问题的大利器啊!有木有想到二分图最大点权独立集呢! 黑白染色+向可以走到的地方连边+跳过障碍物点——求最小割——做完啦!! 代码如下: ...
分类:
其他好文 时间:
2019-01-24 11:08:44
阅读次数:
209
题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入 多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数) 输出 每行输出对应的二进制数。 样例输入 0 1 3 8 样例输出 0 1 11 1000 IDEA ...
分类:
其他好文 时间:
2019-01-24 00:20:22
阅读次数:
156