POJ 3187 Backward Digit Sums
来源:互联网 发布:新网站如何做优化 编辑:程序博客网 时间:2024/04/28 19:25
1.题目描述:点击打开链接
2.解题思路:本题通过观察发现实际上是找符合这样的等式的一个排列:
C(n-1,0)*a[0]+C(n-1,1)*a[1]+...+C(n-1,n-1)*a[n-1]==sum
其中数组a是1~n的一个排列,C(n-1,i)代表组合数。这样的话,可以花费O(N^2)时间预先计算好所有组合数,然后用next_permutation函数枚举下一个排列即可。如果发现正好等于sum,停止枚举。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;#define N 11int a[N];int c[N][N];int n, sum;void init(){for (int i = 1; i < N; i++)c[i][0] = c[i][i] = 1;for (int i = 2; i < N;i++)for (int j = 1; j < i; j++)c[i][j] = c[i - 1][j-1] + c[i - 1][j];}int main(){//freopen("t.txt", "r", stdin);init();while (~scanf("%d%d", &n, &sum)){for (int i = 0; i < n; i++)a[i] = i + 1;do{int res = 0;for (int i = 0; i < n; i++)res += c[n - 1][i] * a[i];if (res == sum)break;} while (next_permutation(a , a + n));for (int i = 0; i < n; i++)printf("%d%c", a[i], i == n - 1 ? '\n' : ' ');}return 0;}
0 0
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 : Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ-3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- Backward Digit Sums(POJ-3187)
- 【Useful VI】Easy VI Aborter 中止VI运行
- 使用Git上传项目代码到github
- PAT 素数对猜想 Java版本
- Android应用本地拒绝服务漏洞浅析
- DDL、DML和DCL的区别与理解
- POJ 3187 Backward Digit Sums
- hibernate.hbm2ddl.auto设置为update时数据库没有自动生成表结构
- Java wait() notify()方法使用实例讲解
- LeetCode—Palindrome Number 数字是否是回文数字
- android自定义actionBar布局
- 系统调用和驱动程序中相应函数的参数对应关系
- (others)RIP内部网关协议下的路由表
- 数字信号处理的学习资源
- linux tomcat jvm内存优化