zoukankan      html  css  js  c++  java
  • 放苹果

    poj 1664 

    题目大意:

    解决:dfs,整数划分问题,

    #include <iostream>
    using namespace std;
    int n,m,cnt;
    int res[15];
    bool check()
    {
        for(int i=1;i<n;i++)
        if(res[i]<res[i-1])return false;
        return true;
    }
    void dfs(int deep,int cur_app,int p)
    {
      //deep>n比不可少,本来以为不要也行,但是由于下边的条件不一定总是满足,
     //可能导致死循环了,所以很有必要独立写出一行
        if(deep>n)return;
        if(deep==n && cur_app==0 && check())
        { /*check函数的作用,由于511和115是同样的一种分配方法,但是都会出现,
    所以按照一定的规则放,让不属于这个规则的其他的排列方式过滤掉就行了,
    此处我用的是按照从大到小的顺序排放,先放大的,后放小的,就行了*/ cnt++; return; } for(int i=cur_app;i>=0;i--) { res[p]=i; dfs(deep+1,cur_app-i,p+1); } } int main() { int icase; cin>>icase; while(icase--) { cnt=0; cin>>m>>n; dfs(0,m,0); cout<<cnt<<endl; } system("pause"); return 0; }

  • 相关阅读:
    Spring核心概念
    动态SQL
    SQL的映射文件
    初始MyBatis
    数据库SQL调优
    使用Spring Boot+MyBatis框架做查询操作
    SSM框架整合核心内容
    JavaScript基础
    MySQL的基本操作
    Java体系结构介绍
  • 原文地址:https://www.cnblogs.com/hpustudent/p/2172376.html
Copyright © 2011-2022 走看看