每日一题 day52 打卡

Analysis

这道题直接搜索会TLE到**,但我们发现有很多没有用的状态可以删去,比如 1,1,5; 1,5,1; 5,1,1;

所以很容易想到一个优化:按不下降的顺序枚举划分出来的每个数。

然而还是会TLE...

再来想一个事情:n=7,k=4 已经枚举了 1,2,3 三个数,这是如果再枚举 2~7 的数就就显得非常蠢

所以你枚举的数 x 应该小于等于  n-sum(a[i])/(k-step+1),

综上,对于每个枚举的数 x ∈ {x∈N*| a[step-1]<=x<=n-sum(a[i])/(k-step+1) }

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
#define maxn 200+10
#define rep(i,s,e) for(register int i=s;i<=e;++i)
#define dwn(i,s,e) for(register int i=s;i>=e;--i)
using namespace std;
inline int read()
{
int x=,f=;
char c=getchar();
while(c<''||c>'') {if(c=='-') f=-; c=getchar();}
while(c>=''&&c<='') {x=x*+c-''; c=getchar();}
return f*x;
}
inline void write(int x)
{
if(x<) {putchar('-'); x=-x;}
if(x>) write(x/);
putchar(x%+'');
}
int n,k,ans;
int a[maxn];
void dfs(int step)
{
if(n==) return;
if(k==step)
{
if(n<a[step-]) return;
ans++;
return;
}
rep(i,a[step-],n/(k-step+))
{
a[step]=i;
n-=i;
dfs(step+);
n+=i;
}
}
signed main()
{
n=read();k=read();
a[]=;
dfs();
write(ans);
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

最新文章

  1. 修改git的远程仓库命令
  2. html快速入门(基础教程+资源推荐)
  3. 学习jQuery之旅
  4. Python 迭代dict 效率
  5. php部分--例子:租房子(复选框的全选、数组拼接成字符串、设置复选框的name值、)
  6. JavaScript高级程序设计之基本包装类型
  7. 广州Uber优步司机奖励政策(2月1日~2月7日)
  8. AutoPy首页、文档和下载 - 跨平台的Python GUI工具包 - 开源中国社区
  9. 文件同步服务器,iis 集群 ,代码同步(一)
  10. 0x02 译文:Windows桌面应用Win32第一个程序
  11. centos7下安装docker(23.docker-swarm之如何访问service)
  12. poj 1611 The Suspects(并查集输出集合个数)
  13. struts2框架之拦截器(参考第二天学习笔记)
  14. POJ1469 COURSES 二分图匹配 匈牙利算法
  15. unity(2017.3) C# 常用API
  16. 应用程序添加角标和tabBar添加角标,以及后台运行时显示
  17. Hadoop HBase概念学习系列之HFile(二十)
  18. MySQL高级第五章——主从复制
  19. SQL命令行操作
  20. 转载——为Xamarin更好的开发而改写的库

热门文章

  1. Vue框架(四)——路由跳转、路由传参、cookies、axios、跨域问题、element-ui模块
  2. 计算几何-凸包算法 Python实现与Matlab动画演示
  3. cas sso docker部署service
  4. Mac android studio真机调试步骤
  5. Oracle 12c数据库的安装
  6. java实现在线预览--poi实现word、excel、ppt转html
  7. 工厂交接班易出问题?MES系统实现精准对接
  8. printf打印字节
  9. mysql修改字符集问题
  10. C# DataTable 和List之间相互转换的方法(转载)