hdu 4393 Throw nails
2012-09-14 22:52
399 查看
先搞500次,然后排个序~~
#include<iostream> #include<vector> #include<algorithm> #include<cstdio> #include<queue> #include<stack> #include<string> #include<map> #include<set> #include<cmath> #include<cassert> #include<cstring> #include<iomanip> using namespace std; #ifdef _WIN32 #define i64 __int64 #define out64 "%I64d\n" #define in64 "%I64d" #else #define i64 long long #define out64 "%lld\n" #define in64 "%lld" #endif /************ for topcoder by zz1215 *******************/ #define FOR(i,a,b) for( int i = (a) ; i <= (b) ; i ++) #define FFF(i,a) for( int i = 0 ; i < (a) ; i ++) #define FFD(i,a,b) for( int i = (a) ; i >= (b) ; i --) #define S64(a) scanf(in64,&a) #define SS(a) scanf("%d",&a) #define LL(a) ((a)<<1) #define RR(a) (((a)<<1)+1) #define pb push_back #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) #define CL(Q) while(!Q.empty())Q.pop() #define MM(name,what) memset(name,what,sizeof(name)) #define read freopen("in.txt","r",stdin) #define write freopen("out.txt","w",stdout) const int inf = 0x3f3f3f3f; const i64 inf64 = 0x3f3f3f3f3f3f3f3fLL; const double oo = 10e9; const double eps = 10e-9; const double pi = acos(-1.0); const int maxn = 50011; struct zz { int id; int x; int y; bool operator < (const zz & a) const { if(x!=a.x) { return x>a.x; } else if(y!=a.y) { return y>a.y; } else { return id<a.id; } } }zx; int n; int f[maxn]; int s[maxn]; bool vis[maxn]; vector<int>v; vector<zz>z; int main() { int T; cin>>T; for(int tt=1;tt<=T;tt++) { MM(vis,false); v.clear(); cin>>n; for(int i=1;i<=n;i++) { SS(f[i]); SS(s[i]); } int temp,t2; int end = 501; end = min(n-1,end); int now; for(int x=1;x<=end;x++) { temp = t2 = 0; for(int i=1;i<=n;i++) { if(!vis[i]) { now = f[i]+(x-1)*s[i]; if(now > temp) { temp = now; t2 = i; } } } vis[t2]=true; v.pb(t2); } z.clear(); for(int i=1;i<=n;i++) { if(!vis[i]) { zx.id = i; zx.x = s[i]; zx.y = f[i]; z.pb(zx); } } sort(z.begin(),z.end()); for(int i=0;i<z.size();i++) { v.pb(z[i].id); } cout<<"Case #"<<tt<<":"<<endl; int size = v.size(); for(int i=0;i<size-1;i++) { printf("%d ",v[i]); } cout<<v.back()<<endl; } return 0; }
相关文章推荐
- HDU 4393 Throw nails
- hdu 4393 Throw nails
- HDU 4393 Throw nails
- HDU 4393 Throw nails
- HDU 4393 Throw nails
- HDU 4393 Throw nails
- HDU 4393 Throw nails(技巧性模拟)
- hdu 4393 Throw nails
- hdu 4393(优先队列)
- HDU 4393 Throw nails (STL)
- HDU 4393
- HDU 4393 Throw nails [水题]
- HDU 4393 Throw nails (简单题)
- hdu 4393 Throw nails(优先队列)
- hdu 4393 Throw nails(STL之优先队列)
- hdu 4393 优先队列
- hdu 4393 Throw nails 相同的状态做相同的处理 贪心
- 【HDOJ】4393 Throw nails
- hdu 4393 贪心+模拟
- hdu 4393