【POJ - 3187】Backward Digit Sums(搜索)
-->Backward Digit Sums
直接写中文了
Descriptions:
3 1 2 4
4 3 6
7 9
16
在FJ回来之前,奶牛们开始了一个更难的游戏:他们尝试根据最后结果找到开始的序列。这已超过了FJ的思考极限。
写一个程序来帮助FJ吧
Input
Output
Sample Input
4 16
Sample Output
3 1 2 4
Hint
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
#define Maxn 1005
using namespace std;
int a[Maxn];
int n;
int ans,result;
void solve()
{
do
{
int b[Maxn];//注意一定要设置一个新数组,不然a数组会混乱
for(int i=;i<n;i++)
b[i]=a[i];
for(int i=n; i>=; i--)//求出这组数组的和
{
for(int j=; j<i; j++)
{
b[j]=b[j]+b[j+];
}
}
result=b[];//b[0]即是这组数字之和
if(result==ans)//得到正确答案,输出数组即可
{
for(int i=; i<n; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
break;
}
}
while(next_permutation(a,a+n));//全排列
}
int main()
{
cin>>n>>ans;
for(int i=; i<n; i++)//输入数组
a[i]=i+;
solve();
}
【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 (dfs,杨辉三角形性质)
FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N < ...
- POJ 3187 Backward Digit Sums
暴力DFS+验证. 验证如果是暴力检验可能复杂度会太高,事实上可以o(1)进行,这个可以o(n*n)dp预处理. #include<cstdio> #include<cstring& ...
- POJ 3187 Backward Digit Sums (递推,bruteforce)
第1行j列的一个1加到最后1行满足杨辉三角,可以先推出组合数来 然后next_permutation直接暴. #include<cstdio> #include<iostream&g ...
- Luogu P1118 [USACO06FEB]数字三角形 Backward Digit Sums | 搜索、数学
题目链接 思路:设一开始的n个数为a1.a2.a3...an,一步一步合并就可以用a1..an表示出最后剩下来的数,不难发现其中a1..an的系数恰好就是第n层杨辉三角中的数.所以我们可以先处理出第n ...
- BZOJ 1653 [Usaco2006 Feb]Backward Digit Sums ——搜索
[题目分析] 劳逸结合好了. 杨辉三角+暴搜. [代码] #include <cstdio> #include <cstring> #include <cmath> ...
- Backward Digit Sums(POJ 3187)
Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5495 Accepted: 31 ...
随机推荐
- canvas制作圆形动态加载进度实例
window.onload=function(){ var loading=document.getElementById('loading'); var context=loading.getCon ...
- JavaScript算术运算符
㈠运算符(操作符) ⑴通过运算符可以对一个或多个值进行运算,并获取运算结果 ⑵比如:typeof就是运算符,可以来获得一个值得类型 它会将该值的类型以字符串的形式返回 ...
- [Linux]ubuntu16.04 nginx彻底删除与重新安装
nginx彻底删除与重新安装 查看nginx正在运行的进程,如果有就kill掉 sudo netstat -ntlp | grep nginx sudo kill -9 进程id 删除nginx,pu ...
- spring-boot的三种启动方式
spring-boot的启动方式主要有三种: 1. 运行带有main方法类 2. 通过命令行 java -jar 的方式 3. 通过spring-boot-plugin的方式 一.执行带有main方法 ...
- 第06课:作用域、JS预解析机制
从字面上理解----域就是空间.范围.区域,作用就是读.写,所以作用域我们可以简单理解为:在什么样空间或者范围内对数据进行什么样的读或写操作. 看一下代码 alert(a); // 为什么是undef ...
- shell 之 用linux定时任务crontab和watchdog.sh脚本做软件看门狗
1.简介 看门狗的作用是定期检测服务正常运行,如果发现服务不在了,会重新拉起服务:linux中可以利用系统的定时任务功能crontab定期的去执行watchdog.sh脚本,而watchdog.sh脚 ...
- Hands-on ML and TF Chapter16 Reinforcement Learning
Policy Granients import tensorflow as tf reset_graph() n_inputs = 4 n_hidden = 4 n_outputs = 1 learn ...
- Travis-CI自动化测试并部署至自己的CentOS服务器
一直都想自己部署一下自动化测试部署,在了解了Travis-CI之后终于准备在这次和小伙伴一起做的一个博客类网站实验下了. 因为这是一个前后端分离的项目,所以我这里只管前端工程的自动化部署,前端主要用V ...
- Java项目框架搭建系列(Java学习路线)
前言: 已经工作4年,真是时间飞逝. 其实当你在一间公司工作一两年之后,公司用到的开发框架的基本使用你应该都会了. 你会根据一个现有项目A复制一下搭建出另外一个类似框架的项目B,然后在项目B上进行业务 ...
- leetcode题目3.无重复字符的最长子串(中等)
题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "a ...