HDU 2616 Kill the monster

来源:互联网 发布:俄罗斯女孩中国人知乎 编辑:程序博客网 时间:2024/05/21 18:39

数据太弱,dfs水过。。

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <map>#include <queue>#include <ctime>#include <set>#define ll long long#define MK make_pair#define PB push_back#define SZ(x) ((int)(x).size())#define FOR(it,c) for ( __typeof((c).begin()) it=(c).begin(); it!=(c).end(); it++ )using namespace std;int n,m,a[15],b[15],ans;bool vis[15];void dfs(int d,int mon){    if(mon<=0){        if(ans==-1||ans>d) ans=d;        return;    }    for(int i=0;i<n;i++){        if(vis[i]) continue;        vis[i]=true;        if(mon<=b[i]) dfs(d+1,mon-2*a[i]);        else dfs(d+1,mon-a[i]);        vis[i]=false;    }}int main(){#ifndef ONLINE_JUDGE    freopen("a.in","r",stdin);    freopen("a.out","w",stdout);#endif    while(cin>>n>>m){        for(int i=0;i<n;i++) cin>>a[i]>>b[i];        ans=-1;        dfs(0,m);        cout<<ans<<endl;    }    return 0;}