挑战-搜索

题意:

给一个n和sum,代表n层的杨辉三角,然后给一个和,问最低层的数字情况。

思路:

①:预处理一个底层对于和的系数数组,

sum = 0Cn-1*num[1] + 1Cn-1*num[2] +…+ n-1Cn-1*num[n];

②:因为底层就是1-n直接暴搜…即可…

贴一发挫code………

#include<cstdio>
#include<map>
#include<queue>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define eps 1e-8
typedef __int64 LL; // 杨辉三角第n层第k个数记为Ckn // 那么=n!/[k!(n-k)!]=n * (n – 1)…*(n – k + 1) / k! //sum = 0Cn-1*num[0] + 1Cn-1*num[1] +``+ n-1Cn-1*num[n-1] const int N=12; int c[N];
int num,n;
bool vis[N];
int d[N],flag; int cal(int x)
{
int i=1,ans=1;
int t=n-1;
while(i<=x)
{
ans=ans*t/i;
t--;i++;
}
return ans;
} void dfs(int x,int sum)
{
if(flag) return;
if(sum>num) return;
if(x==n)
{
if(sum==num&&!flag)
{
flag=1;
for(int i=0;i<n;i++)
{
if(i) printf(" ");
printf("%d",d[i]);
}
flag=1;
}
return;
} for(int i=1;i<=n;i++)
{
if(!vis[i])
{
d[x]=i;
vis[i]=1;
dfs(x+1,sum+i*c[x+1]);
vis[i]=0;
}
}
} int main()
{
scanf("%d%d",&n,&num);
for(int i=1;i<=n;i++)
c[i]=cal(i-1); // for(int i=1;i<=n;i++)
// printf("%d ",c[i]); memset(vis,0,sizeof(vis));
flag=0;
dfs(0,0);
return 0;
}

最新文章

  1. 【BZOJ 3051】【UOJ #57】【WC 2013】平面图
  2. sqlserver 中row_number,rank,dense_rank,ntile排名函数的用法
  3. apache+php+mysql的配置(转载)
  4. [Javascript] Limit Built Branches on Travis
  5. 数据库的模糊查询mybatis
  6. CSS 确定选中变红色
  7. java正则表达式练习
  8. JAVASCRIPT事件详解-------原生事件基础....
  9. git同一文件由于文件名大小写不同导致不能合并
  10. Android(java)学习笔记166:Java中输入和输出流概念
  11. [Design Pattern] Front Controller Pattern 简单案例
  12. Android Shape画圆,矩形
  13. perl 面向对象 use base
  14. leetcode第22题--Merge k Sorted Lists
  15. 斜率优化入门学习+总结 Apio2011特别行动队&amp;Apio2014序列分割&amp;HZOI2008玩具装箱&amp;ZJOI2007仓库建设&amp;小P的牧场&amp;防御准备&amp;Sdoi2016征途
  16. Chart.js 與 ASP.NET MVC 整合應用
  17. android studio定时器
  18. postgresql定位分析消耗CPU高的SQL语句
  19. 五大常见的MySQL高可用方案
  20. 快递 API接口

热门文章

  1. Solidworks如何将参考平面的图形投影到某曲面上
  2. shell 检查文件夹所属用户组
  3. shell mysql 直接创建表
  4. 【基础练习】【线性DP】codevs3027 线段覆盖2题解
  5. 【分享】利用Apache的Htaccess Files命令限制訪问文件类型,Files正则
  6. JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)
  7. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
  8. Erlang进程堆垃圾回收机制
  9. 程序员笔记|如何编写高性能的Java代码
  10. Codeforces Round #335 (Div. 2) 606B Testing Robots(模拟)