SPOJ AMR10I Dividing Stones
来源:互联网 发布:linux中txt文件转码 编辑:程序博客网 时间:2024/05/21 08:39
http://www.spoj.pl/problems/AMR10I
数论递归+处理
#include <cstdio>#include <iostream>#include <algorithm>#include <cmath>#include <cstring>#include <map>using namespace std;#define foru(i, a, b) for(int i=(a); i<=(b); i++)#define ford(i, a, b) for(int i=(a); i>=(b); i--)#define clr(a) memset(a, 0, sizeof(a))typedef long long ll;ll p;int n, m, num, tot;int pri[20] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67}; map<ll,int> s;void dfs(int d, int sum, ll c){ if (sum < 0) return; s[c]=1; ford(i, d, 1){ dfs(i, sum-pri[i], (c*pri[i])%p); }}int main(){ // freopen("date.in", "r", stdin); int T; scanf("%d", &T); while (T--){ s.clear(); scanf("%d%lld", &n, &p); dfs(19, n, 1ll); printf("%d\n", s.size()); } return 0;}
0 0
- SPOJ AMR10I Dividing Stones
- SPOJ AMR10I Dividing Stones --DFS
- SPOJ AMR10I Dividing Stones 简单深搜
- SPOJ AMR 10I Dividing Stones(搜索)
- Dividing Stones
- Dividing Stones
- BNU - Dividing Stones 记忆化搜索
- UVALive 5116 Dividing Stones(dfs + 打表)
- Stones
- Stones
- Stones
- Stones
- Stones
- Dividing
- Dividing
- Dividing
- Dividing
- Dividing
- 关于javac
- 个人笔记—01
- 怎么将pdf转换excel转换器
- Windows Message Queue
- LeetCode第五题,Longest Palindromic Substring
- SPOJ AMR10I Dividing Stones
- PhoneGap:JS跨域请求
- retian详解
- 在C语言中调用Unix Shell脚本。
- 什么是VPN协议
- 独立开发者经验分享
- 剑指offer-30:最小的k个数
- Moon Game
- HDU 1232 畅通工程