c_cpp yukicoder No.115远足のおやつ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp yukicoder No.115远足のおやつ相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<vector>

using namespace std;
int memo[101][1001][11];
int N, D, K;
vector<int> ans;
vector<int> mians;

int rec(int i, int s, int m){

   if(memo[i][s][m]!=-1) return memo[i][s][m];
   if(m==K){
      if(s==D){
         if(mians.size()==0) mians=ans;
         return 1;
      }else{
         return 0;
      }
   }
   if(i==N){
      return 0;
   }
   int ret=0;
   ans.push_back(i+1);
   int tukau=rec(i+1, s+(i+1), m+1);
   ans.pop_back();
   int tukawanai=rec(i+1, s, m);
   ret=(tukau||tukawanai);
   return memo[i][s][m]=ret;
}

int main(){

   cin>> N>> D>> K;

   fill((int*)memo, (int*)memo+101*1001*11, -1);
   if(rec(0, 0, 0)){
      for(int i=0; i<mians.size(); i++){
         if(i>0){
            cout<< " ";
         }
         cout<< mians[i];
      }
      cout<< endl;
   }else{
      cout<< -1<< endl;
   }

   return 0;
}

以上是关于c_cpp yukicoder No.115远足のおやつ的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp Unix的ドメインソケットの确认

c_cpp externの配列定义を使ったビルド时の配列サイズチェック方法(MINIX3より)

c_cpp C ++ 11のとdecltypeのenable_if如果练习

c_cpp 自プロセスの环境変数を全て表示する

c_cpp 总线错误:10の再现性を确认するためのテスト

c_cpp [失败例]コンピュートシェーダで大量の立方体を回す