zoukankan      html  css  js  c++  java
  • HDU 4345 Permutation dp



    #include <cstring>
    #include <vector>
    #include <list>
    #include <map>
    #include <set>
    #include <deque>
    #include <stack>
    #include <bitset>
    #include <algorithm>
    #include <functional>
    #include <numeric>
    #include <utility>
    #include <sstream>
    #include <iostream>
    #include <iomanip>
    #include <cstdio>
    #include <cmath>
    #include <cstdlib>
    #include <ctime>
    #include <memory.h>
    #include <cassert>
    using namespace std;
    typedef long long ll;
    const int N = 185;
    const int M = 1000 + 1;
    bool pri(int x) {
    	if (x == 2)
    		return true;
    	else if (x%2==0)
    		return false;
    	for (int i = 3; i * i <= x; i += 2)
    		if (x%i==0)
    			return false;
    	return true;
    }
    int prime[N], idx = 0;
    ll ans[M], d[N][M];
    int main() {
    	int v;
    	ll sum;
    	for (int i = 2; i <= 1000; ++i)
    		if (pri(i))
    			prime[idx++] = i;
    	memset(d, 0, sizeof d);
    	d[0][0] = 1;
    	for (int i = 0; i < idx; ++i) {
    		v = prime[i];
    		while (v < M) {
    			for (int j = v; j < M; ++j)
    				d[i+1][j] += d[i][j - v];
    			v = v * prime[i];
    		}
    		for (int j = 0; j < M; ++j)
    			d[i+1][j] += d[i][j];
    	}
    			
    	ans[0] = d[idx][0];
    	for (int i = 1; i < M; ++i)
    			ans[i] = ans[i - 1] + d[idx][i];
    	ans[0] = 0;
    	int n;
    	while (~scanf("%d", &n)) {
    		printf("%I64d
    ", ans[n]);
    	}
    	return 0;
    }


  • 相关阅读:
    js计算器
    还差得远
    首个项目结束
    Web前端开发规范文档你需要知道的事
    CSS需要经过多次练习和积累才能掌握
    在Javascript中闭包(Closure)
    Web前端和网站美工
    IE中的条件注释
    计算机类期刊投稿
    忙就一个字
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7050198.html
Copyright © 2011-2022 走看看