BNU - Dividing Stones 记忆化搜索
来源:互联网 发布:立体设计软件 编辑:程序博客网 时间:2024/05/18 03:53
题意:
求相加小于等于n的积%p有多少个。
解:
记忆化搜索。 假设已经求出i以及小于i 的答案,存于<set> factor[i]里面,且i + j == n, 则j从0到i,乘以factor[j]里面的东西,就是factor[i]里面存的东西。因为LLwa了很多次。
和这题很像,多校的。 不过这题是求相加小于等于n的质数的最小公倍数的个数。kaka
#include <cstdio>#include <set>using namespace std;int T, n, p;typedef long long LL;set <LL> s, factor[77];void get(){//将相加小于等于n的积放在factor里面 //factor[1].insert(1); for(int i = 0; i <= 70; i++) factor[i].clear(); for(int i = 1; i <= 70; i ++){ factor[i].insert(i); for(int j = 1; j < i; j ++){ for(set <LL> :: iterator it = factor[j].begin(); it != factor[j].end(); it ++){ factor[i].insert((i - j) * (LL) (* it)); } } }}int main(){ get(); scanf("%d",&T); while( T --){ scanf("%d%d",&n, &p); s.clear(); for(set <LL> :: iterator it = factor[n].begin(); it != factor[n].end(); it ++){ //printf("%d\n", *it); s.insert((*it) % p); } printf("%d\n", s.size()); } return 0;}
- BNU - Dividing Stones 记忆化搜索
- BNU Graceful Prime Decomposition 记忆化搜索
- Dividing Stones
- Dividing Stones
- SPOJ AMR 10I Dividing Stones(搜索)
- SPOJ AMR10I Dividing Stones
- BNU 25593 Prime Time 记忆化dp
- SPOJ AMR10I Dividing Stones --DFS
- HDU 4166 & BNU 32715 Robot Navigation (记忆化bfs)
- 记忆化搜索例题
- PKU1088---记忆化搜索
- PKU1088 记忆化搜索
- HDU1078 记忆化搜索
- HDU1501 记忆化搜索
- HDU1978 记忆化搜索
- poj1661 记忆化搜索
- zoj1107记忆化搜索
- poj1191(记忆化搜索)
- C语言运算符优先级
- Ldd3编译遇到常见问题汇总
- 央视《每周质量报告》:揭秘假宽带真相
- Firefox 18 将支持 OS X 的视网膜屏
- 春晚就看赵本山 手机只买iPhone5
- BNU - Dividing Stones 记忆化搜索
- c++学习资源
- 苹果iPhone5 16G长沙九方现货售8199元
- 苹果开发人员的幸福
- 再谈每周工作不要超过 40 小时
- Poj 3211 Washing Clothes
- Struts2拦截器的原理与实现
- SQL基本操作
- 前员工讲述 Google 最黑暗的工作