小王在考试中遇到一道难题:方程 a1+a2+„„+an=m 的非负整数解有几个,请你帮他算
一下(这也可以算作他作弊吧)。 输入格式
一行,两个以空格隔开的数 n,m,表示方程 a1+a2+„„+an=m

这个题我诚实的说,我不会……

数据范围再大点我就不会了。

这个题看起来是数论,写起来也是数论,哪哪都像数论。

But!

对于50%的数据,0<=n,m<=10,结果<200
对于100%的数据,0<=n,m<32767, 结果<32767

  我们注意一下第二句,结果小于32767,这是个什么概念,意思是说(我简单描述),n再大于等于8的情况下,m最大是1。

n>=8啊,这玩意用的着数论?是你数论太香了,还是我打不动深搜了?有简单的深搜干嘛不打(个人觉得深搜好写一点)。

直接一波纯洁深搜(没找到可以优化的点):

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,m,cs;
void dfs(long long wz,long long shu)
{
if(wz==n)//搜了n个数
{
if(shu==m)//正好所有数相加等于m
{
cs++;//有了一个新的方法
return;
}
return;
}
for(int i=0;i<=m-shu;i++)//一个小优化
{
dfs(wz+1,shu+i);//下一层循环
}
return;
}
int main()
{
freopen("problem.in","r",stdin);
freopen("problem.out","w",stdout);//要写freopen,重要的事情写3遍。
scanf("%lld%lld",&n,&m);
dfs(0,0);//搜索开始
printf("%lld",cs);
return 0;
}

嗯,妙啊,妙啊,深搜真好,我只能说这个题不变态了啊,写的像个数论,却没有卡搜索的数据(可能他就是个搜索)。

T3 难题 题解的更多相关文章

  1. Hdoj 2045.不容易系列之(3)—— LELE的RPG难题 题解

    Problem Description 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole"(LELE的粉丝,即"可乐 ...

  2. [难题题解] [BZOJ1875] [SDOI2009] HH去散步

    题目H有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢变化的人 ...

  3. 【基础练习】【BFS+A*】codevs1225八数码难题题解

    题目描写叙述 Description Yours和zero在研究A*启示式算法.拿到一道经典的A*问题,可是他们不会做,请你帮他们. 问题描写叙述 在3×3的棋盘上,摆有八个棋子,每一个棋子上标有1至 ...

  4. 洛谷 P1379 八数码难题 题解

    我个人感觉就是一道bfs的变形,还是对bfs掌握不好的人有一定难度. 本题思路: 大体上用bfs搜,用map来去重,在这里只需要一个队列,因为需要较少步数达到的状态一定在步数较多的状态之前入队列. # ...

  5. T3 成绩单 题解

    这个题本来不归我讲,但我A完之后觉得太坑了,还是讲一下吧. 首先这个题有个重要的地方:(字典顺序,学号全为小写字母,从小到大排列) 字典序和字典顺序是不一样的!!! 我以为是字典序……,wa了,字典顺 ...

  6. 模拟7 T3 寿司题解

    题目要求可以转化成一个01串,让通过最少次数把序列变成中间是0,两端是1: 首先我们可以考虑一些性质: 最优解一定是每次操作都把0和1交换 这个很好理解,如果你交换同一种东西,跟没换一样 这个题卡就卡 ...

  7. LuoguP6861 [RC-03] 难题 题解

    Update \(\texttt{2020.10.21}\) 删除了不需要的 \(n=1\) 的特判,并在符号与字母之间添加了空格. Content 给定一个数 \(n\),试找到一对数 \(a,b( ...

  8. [BJOI2017]树的难题 点分治 线段树

    题面 [BJOI2017]树的难题 题解 考虑点分治. 对于每个点,将所有边按照颜色排序. 那么只需要考虑如何合并2条链. 有2种情况. 合并路径的接口处2条路径颜色不同 合并路径的接口处2条路径颜色 ...

  9. 【HNOI2019】部分题简要题解

    题意懒得写了 LOJ Day 1 T1 鱼 个人做法比较猎奇,如果有哪位大佬会证明能分享一下的话感激不尽. 题解:枚举鱼尾和鱼身的交点D,将所有其他点按照到D的距离排序,距离相同的分一组. 感性的理解 ...

随机推荐

  1. C++ 基于多态的职工管理系统

    职工管理系统 1.管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工.经理.老板,显示信息时,需要显示职工编 ...

  2. 11.实战交付一套dubbo微服务到k8s集群(4)之使用Jenkins进行持续构建交付dubo服务的提供者

    1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4. 添加参数 # 参数 . name: git_repo type: string description: 项目在 ...

  3. NET 数据结构-单链表

    概念介绍: 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元 ...

  4. 设计模式系列之中介者模式(Mediator Pattern)——协调多个对象之间的交互

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

  5. vs2010调试运行时弹出对话框:系统找不到指定文件

    很多时候,我们会将一些低版本IDE编译过的项目,搬迁到VS2010 ,那么会存在很多编译,调试问题.[1] 编译成功了.可是无法调试 . .       显示 无法启动程序“...........\t ...

  6. js页面跳转的问题(跳转到父页面、最外层页面、本页面)

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  7. 几个常见CSS错误和解决办法

    1.IE6下,当float存在时,margin双倍的问题 解决方法:加display:inline; 例: #content {    float: left;     width: 500px;   ...

  8. 2020年的六种编程语言排名中,java排第几只有不到1%的人知道

    前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...

  9. Spring 获取单例流程(一)

    读完这篇文章你将会收获到 在 getBean 方法中, Spring 处理别名以及 factoryBean 的 name Spring 如何从多级缓存中根据 beanName 获取 bean Spri ...

  10. Python 实现短信轰炸机

    原理其实很简单,就是利用selenium包打开各种网站的注册页,输入轰炸的号码,实现轰炸.其实也算是利用了注册漏洞.申明:仅娱乐使用,禁止️用于非法用途!若用于非法用途,后果及法律责任博主一律不承担 ...