POJ 3187 Backward Digit Sums
暴力DFS+验证。
验证如果是暴力检验可能复杂度会太高,事实上可以o(1)进行,这个可以o(n*n)dp预处理。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; const int maxn=;
bool flag[maxn];
bool r;
int a[maxn];
int n,sum; int mul[][]; bool check(int s)
{
if(s==sum) return ;
return ;
} void dfs(int deep,int tot)
{
if(deep==n-)
{
if(check(tot))
{
r=;
for(int i=;i<=deep;i++)
{
printf("%d",a[i]);
if(i<deep) printf(" ");
else printf("\n");
}
}
return ;
} for(int i=;i<=n;i++)
{
if(flag[i]==)
{
flag[i]=;
a[deep+]=i;
dfs(deep+,tot+a[deep+]*mul[n][deep++]); if(r==) return;
flag[i]=;
}
}
} void init()
{
memset(mul,,sizeof mul); mul[][]=;
for(int i=;i<=;i++)
{
for(int j=;j<=;j++) mul[i][j]=mul[i-][j];
for(int j=;j<=+;j++) mul[i][j]=mul[i][j]+mul[i-][j-];
}
} int main()
{
init();
while(~scanf("%d%d",&n,&sum))
{
r=; memset(flag,,sizeof flag);
for(int i=;i<=n;i++)
{
flag[i]=;
a[]=i;
dfs(,a[]*mul[n][+]);
flag[i]=;
}
}
return ;
}
POJ 3187 Backward Digit Sums的更多相关文章
- POJ 3187 Backward Digit Sums 枚举水~
POJ 3187 Backward Digit Sums http://poj.org/problem?id=3187 题目大意: 给你一个原始的数字序列: 3 1 2 4 他可以相邻 ...
- 穷竭搜索:POJ 3187 Backward Digit Sums
题目:http://poj.org/problem?id=3187 题意: 像这样,输入N : 表示层数,输入over表示最后一层的数字,然后这是一个杨辉三角,根据这个公式,由最后一层的数,推出第一行 ...
- poj 3187 Backward Digit Sums(穷竭搜索dfs)
Description FJ and his cows enjoy playing a mental game. They write down the numbers to N ( <= N ...
- POJ 3187 Backward Digit Sums (递推,bruteforce)
第1行j列的一个1加到最后1行满足杨辉三角,可以先推出组合数来 然后next_permutation直接暴. #include<cstdio> #include<iostream&g ...
- POJ 3187 Backward Digit Sums (dfs,杨辉三角形性质)
FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N < ...
- Backward Digit Sums(POJ 3187)
Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5495 Accepted: 31 ...
- 【POJ - 3187】Backward Digit Sums(搜索)
-->Backward Digit Sums 直接写中文了 Descriptions: FJ 和 他的奶牛们在玩一个心理游戏.他们以某种方式写下1至N的数字(1<=N<=10). 然 ...
- BZOJ1653: [Usaco2006 Feb]Backward Digit Sums
1653: [Usaco2006 Feb]Backward Digit Sums Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 207 Solved: ...
- Backward Digit Sums(暴力)
Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5664 Accepted: 32 ...
随机推荐
- JPA 系列教程8-双向一对一共享主键
双向一对一共享主键的ddl语句 CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(25 ...
- scrollview上面的图片不上下滑动
self.automaticallyAdjustsScrollViewInsets= NO;
- PHP显示超全局变量和显示程序执行时间
<?php header('Content-type: text/html; charset=utf-8'); $t1 = microtime(true);//记录脚本刚开始运行是的时间戳 ec ...
- windows程序设计(三)
MFC所有封装类一共200多个,但在MFC的内部技术不只是简单的封装 MFC的内部总共有六大关键技术,架构起了整个MFC的开发平台 一.MFC的六大关键技术包括: a).MFC程序的初始化过程 b). ...
- lucene中Field.Index,Field.Store的一些设置
lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZE ...
- Android与路由器连接服务
界面UI: package my.work.Library; import java.util.Timer; import java.util.TimerTask; import java.util. ...
- linux自动化构建工具-scons指南
1.scons是linux下的自动构建工具 scons是用Python编写的,使用scons之前需确认是否已经安装了Python.(在系统的命令行中运行python -V或python --versi ...
- json中文乱码问题
首先在 tomcat的 D:\apache-tomcat-7.0.57\conf\server.xml里添加中文编码 <Connector port="8080" proto ...
- psy & obv
PSY和OBV 1,PSY心理线是投资者对股市涨跌产生心理波动的情绪指标.相反,当PSY曲线向下跌破PSYMA曲线后,为卖出时机..当PSY曲线向上突破PSYMA曲线后,开始向下回调至PSYMA曲线, ...
- cakephp 的事件系统(Getting to grips with CakePHP’s events system), 基于观察者模式
This article was written about CakePHP 2.x and has been untested with CakePHP 3.x CakePHP seems to g ...