一上午都在做有关搜索的题目,,,

看到这题之后就直接开始爆搜

结果只有70分,

其余的点硬生生的就是那么WA了。

我的天哪~

70分代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,sum;
int ans;
bool dis[];
int f[][];
void shuchu() {
for(int i=; i<=n; i++)
cout<<f[][i]<<" ";
}
void check() {
for(int i=; i<=n; i++)
for(int j=; j<=n-i+; j++)
f[i][j]=f[i-][j]+f[i-][j+];
/* for(int i=1;i<=n;i++){
for(int j=1;j<=n-i+1;j++)
cout<<f[i][j]<<" ";
cout<<'\n';
}*/
// cout<<f[n][1]<<" ";
if(f[n][]==sum) {
shuchu();
ans++;
}
}
void pai(int k) {
if(k>n&&!ans) {
check();
return;
}
for(int i=; i<=n; i++) {
if(!dis[i]) {
dis[i]=true;
f[][k]=i;
pai(k+);
dis[i]=false;
}
}
}
inline int read() {
int s=,w=;
char ch=getchar();
while(ch<''||ch>'') {
if(ch=='-')w=-;
ch=getchar();
}
while(ch>=''&&ch<='')
s=(s<<)+(s<<)+(ch^),ch=getchar();
return s*w;
}
int main() {
n=read(),sum=read();
pai();
return ;
}

之后就开始手动模拟 check() 的过程

猛然发现

这貌似是个杨辉三角,哟哟哟。,,

满分代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,sum;
int ha[],flag,yh[][];
bool v[];
void print(){
for(int i=;i<=n;i++)
printf("%d ",ha[i]);
}
//那个函数被我删了
void dfs(int step,int ans){
if(ans>sum||flag)return;
if(step==n+&&ans==sum){
print();
flag=;//标记
return;
}
for(int i=;i<=n;i++)
if(!v[i]){
ha[step]=i;
v[i]=true;
dfs(step+,ans+i*yh[n][step]);//看顶楼的解释
v[i]=false;//回溯
}
} int main(){
scanf("%d%d",&n,&sum);
yh[][]=;
for(int i=;i<=n;i++)//构造杨辉三角
for(int j=;j<=i;j++)
yh[i][j]=yh[i-][j-]+yh[i-][j];
dfs(,);
return ;
}

luoguP1118 [USACO06FEB]数字三角形`Backward Digit Su`… 题解的更多相关文章

  1. P1118 [USACO06FEB]数字三角形`Backward Digit Su`… 回溯法

    有这么一个游戏: 写出一个11至NN的排列a_iai​,然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少11,直到只剩下一个数字位置.下面是一 ...

  2. P1118 [USACO06FEB]数字三角形`Backward Digit Su`…

    题目描述 FJ and his cows enjoy playing a mental game. They write down the numbers from 11 to N(1 \le N \ ...

  3. P1118 [USACO06FEB]数字三角形Backward Digit Su…

    题目描述 FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N ...

  4. 洛谷—— P1118 [USACO06FEB]数字三角形Backward Digit Su…

    https://www.luogu.org/problem/show?pid=1118#sub 题目描述 FJ and his cows enjoy playing a mental game. Th ...

  5. P1118 [USACO06FEB]数字三角形`Backward Digit Su`… (dfs)

    https://www.luogu.org/problemnew/show/P1118 看的出来是个dfs 本来打算直接从下到上一顿搜索 但是不会 看了题解才知道系数是个杨辉三角....... 这样就 ...

  6. 洛谷P1118 [USACO06FEB]数字三角形`Backward Digit Su`…

    #include<iostream> using namespace std ; ; int y[N][N]; int n; int a[N]; bool st[N]; int sum; ...

  7. Luogu P1118 [USACO06FEB]数字三角形 Backward Digit Sums | 搜索、数学

    题目链接 思路:设一开始的n个数为a1.a2.a3...an,一步一步合并就可以用a1..an表示出最后剩下来的数,不难发现其中a1..an的系数恰好就是第n层杨辉三角中的数.所以我们可以先处理出第n ...

  8. [USACO06FEB]数字三角形

    题目描述 FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N ...

  9. P1118 [USACO06FEB]Backward Digit Sums G/S

    P1118 [USACO06FEB]Backward Digit Sums G/S 题解:  (1)暴力法.对1-N这N个数做从小到大的全排列,对每个全排列进行三角形的计算,判断是否等于N.  对每个 ...

随机推荐

  1. java中static和final修饰符

    static和final修饰符 一.static修饰符 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. ...

  2. Vue,Javascript--时间戳的操作

    new Date(parseInt(data.substring(6, data.length - 2))).toLocaleDateString(); 我这里的data记得替换成你的数据,在过滤器中 ...

  3. SQL小技巧(一)拼音首字母的模糊查询

    基于Microsoft SQL Server 的标量值函数fun_GetPy,借鉴其他优秀的博主文章,此处贴出源码,以及使用方法 1.打开新建查询,贴如下代码,F5 /****** Object: U ...

  4. 推荐算法之Thompson(汤普森)采样

    如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布. 一.Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布 ...

  5. 2019 满帮java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.满帮等公司offer,岗位是Java后端开发,因为发展原因最终选择去了满帮,入职一年时间了,也成为了面试官,之 ...

  6. 爬虫--selenium之 chromedriver与chrome版本映射表(最新至v2.46版本chromedriver)

    本文主要整理了selenium的chromedriver与chrome版本映射表,并且持续更新中..... 1.selenium之 chromedriver与chrome版本映射表(最新至v2.46版 ...

  7. 英语gzibeads天珠gzibeads单词

    天珠英语是gZiBeads,藏语叫(si , 斯)汉语译为“斯”或“瑟”,又称“天降石”.在<藏汉大辞典>里天珠的解释为:“亚玛瑙,猫睛石,一种宝石,俗称九眼珠.入药能治脑溢血”.最早的天 ...

  8. Process.Start可能无法选中指定文件的问题

    简单的说是由于给定的文件路径中含有多余的斜杠(\),比如C:\a\b\\c.txt,在.NET类(比如File,FileInfo,Directory)中使用没有问题,但是如果使用Process.Sta ...

  9. 【python】多任务(1. 线程)

    线程执行的顺序是不确定,可以通过适当的延时,保证某一线程先执行 基础语法 # 多线程的使用方式 import threading def test1():... # 如果创建Thread时执行的函数, ...

  10. flask ajax发送请求返回400

    在flaskWTF使用csrf保护后,一般提交form表单都需要一个隐藏的csrf 这样可以成功提交,但是使用ajax提交时就不能成功提交,会返回400错误,服务器无法理解请求,这样就需要新的方法解决 ...