首页 > 其他分享 >洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)

洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)

时间:2022-09-22 20:35:12浏览次数:87  
标签:凑到 洛谷 NOIP2001 LL dfs P1025 num sum

https://www.luogu.com.cn/problem/P1025

给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。

求能凑出的数量。
输入7 3
输出4

明明是一道很简单的dfs,不知道为什么就是没有写好,还是看了别人的题解才过,我太菜了

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL N=500200,M=2002;
LL n,k,ans=0;
//前一个是啥,总数是啥,已经摆放好了的位置是多少?
void dfs(LL last,LL sum,LL num)
{
    if(num==k)//刚好凑到k份
    {
        if(sum==n) ans++;//看一看有没有达标
        return ;
    }
    for(LL i=last;sum+i*(k-num)<=n;i++)//当前位置是last,后面还有k-num个位置,要确保非递减,所以这样可以有效剪枝
        dfs(i,sum+i,num+1);
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n>>k;//将整数n分成k份
        dfs(1,0,0);
        //从1开始划分在第一份
        //已经凑到的总数
        //凑到了几个位置?
        cout<<ans<<endl;
    }
    return 0;
}

标签:凑到,洛谷,NOIP2001,LL,dfs,P1025,num,sum
From: https://www.cnblogs.com/Vivian-0918/p/16720767.html

相关文章

  • BigData——HDFS操作
    HDFSshell操作配置hadoop环境变量vi/etc/profileexportHADOOP_HOME=/usr/local/soft/hadoop-2.6.0exportPATH=.:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:$PATH然后执......
  • 我眼中的大数据(二)——HDFS
    Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性。如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统H......
  • AcWing 133/洛谷2827 蚯蚓
    首先考虑根据题意模拟#include<bits/stdc++.h>#defineintlonglong//懒死谁了usingnamespacestd;typedeflonglongllinlinevoidrd(int&x){x=0;b......
  • 洛谷P1290 欧几里德的游戏
    链接:https://www.luogu.com.cn/problem/P1290不妨假设\(b\leqa\)。显然,当\(a\)是\(b\)的倍数时,为必胜态。接下来考虑\(a\)不为\(b\)的倍数时:1.\(a\)小于\(2*b\)时,当前......
  • HDFS基础命令
    列出文件目录hdfsdfs-ls/user/hive/warehouse列出全部目录与文件hdfsdfs-ls-R/user/hive/warehouse查看目录文件大小hdfsdfs-du-s-h/user/hive/wa......
  • 洛谷P3372【模板】线段树1
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intn,m,a[N];intadd[N*4];//账本longlongsum[N*4];//a[k]的区间和voidbuild(intk,intl,i......
  • ABC 269 C - Submask(dfs+位运算)
    C-Submask(dfs+位运算)题目大意:给定一个十进制的数字,让我们求出它的二进制下的1可以改变时候的数字SampleInput111SampleOutput10123891011Thebi......
  • 洛谷真题字典树
    P8306【模板】字典树1#include<bits/stdc++.h>2usingnamespacestd;3intt,n,q;4constintmaxn=3000005;5chars[maxn];6intson[maxn][80],cnt[ma......
  • *ABC 236 D - Dance(dfs)
    https://atcoder.jp/contests/abc236/tasks/abc236_d题意:两个两个组队,开心值异或,求最大开心值。注意这句话:IfPersoniandPersonjpairup,whereiissmallertha......
  • 洛谷 P1123 取数游戏(dfs)
    https://www.luogu.com.cn/problem/P1123题目大意:给定一个n*m的矩阵,问我们从里面怎样取能取到最大的总和?条件是选了一个数,下次它的八个方向上的数字就不能选了输入#1......