eoj 3279 爱狗狗的两个dalao(dfs)
来源:互联网 发布:单机游戏编程语言 编辑:程序博客网 时间:2024/05/16 05:29
当时第一次见这题的时候我不在现场,没听到题解,今天看到有人过,突然想起,然后闲的蛋疼,过来写一下,1A.
一开始很智障,想着贪心,但是其实这样没有意义,类比背包.
N<18,直接搜索咯.
好像有许多地方可以优化,有一组数据会被卡的很惨,但是懒得想咯,我们又菜又懒的咸鱼是这样的.
一如既往丑陋低效的搜索.
/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <string>using namespace std;#define FFF freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define MP make_pair#define PB push_backtypedef long long LL;typedef unsigned long long ULL;typedef pair<int,int > pii;const int MAXN = 10000+17;const int MAXM = 20;const int MAXV = 1001+17;const int INF = 0x7fffffff;const int MOD = 1e9+7;int a[18+17],n,m,ans = INF;void dfs(int p,int num,vector<int > all){ if(num>=ans) return; for (int i = 0; i < all.size(); ++i) { if(all[i]>=a[p]) { all[i]-=a[p]; if(p==n-1) { ans = min(ans,num); return; } else dfs(p+1,num,all); all[i]+=a[p]; } } all.push_back(m-a[p]); if(p==n-1) { ans = min(ans,num+1); return; } else dfs(p+1,num+1,all);}int main(){ #ifndef ONLINE_JUDGE FFF #endif cin>>n>>m; for (int i = 0; i < n; ++i) cin>>a[i]; vector<int > v; dfs(0,0,v); cout<<ans<<endl; return 0;}
阅读全文
0 0
- eoj 3279 爱狗狗的两个dalao(dfs)
- dalao的博客
- 一些dalao的模板
- dalao的tajan模板
- 挂一波Dalao的代码
- EOJ 2832:ZERO(DFS)
- EOJ 1148 质数阵 dfs
- EOJ 2527 Fj & haozi【dfs】
- Codeforces Round #397(Div. 1 + Div. 2 combined)E. Tree Folding【思维+Dfs】dalao们的解法真巧妙系列QAQ
- EOJ 1816 判断图连通的三种方法——dfs,bfs,并查集
- EOJ 1981:Sticks(DFS+剪枝)
- EOJ 3297 铺瓷砖(DFS)
- EOJ
- EOJ
- EOJ
- IDA6.5 by dalao带arm和x86的f5
- 与dalao学校的联hu测zuo(10.26)
- 与dalao学校的联hu考ce(10.27)
- soj2198: Highways_最小生成树Prim
- Unity入门操作_UGUI_Toggle_027
- 如何使用Kotlin的语言特性创建一个层次分明的URL建造器
- 自做CA自签发SSL证书
- 挑战程序竞赛系列(40):4.1模运算的世界(3)
- eoj 3279 爱狗狗的两个dalao(dfs)
- 用装饰模式优化代码的一个简单例子
- 排序算法-冒泡排序
- char 转 QString
- PHP面向对象深入理解之四(设计模式-观察者模式)
- 【置换群+贪心】51Nod1125[交换机器的最小代价]题解
- 认知,构建个人的知识体系(上)
- 1.简介
- python猜数字,只有3次机会