結果
問題 | No.5007 Steiner Space Travel |
ユーザー | tanaka |
提出日時 | 2022-07-30 14:37:39 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 4,812 bytes |
コンパイル時間 | 1,476 ms |
実行使用メモリ | 3,624 KB |
スコア | 0 |
最終ジャッジ日時 | 2022-07-30 14:37:51 |
合計ジャッジ時間 | 10,996 ms |
ジャッジサーバーID (参考情報) |
judge10 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | WA | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | WA | - |
ソースコード
#include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep3(i, n, m) for (int i = m; i < (int)(n); i++) #define repr(i, n) for (int i = n-1; i >= 0; i--) #define all(v) v.begin(), v.end() #define SP << " " #define ll long long using namespace std; //定数周り int imax=2147483647; ll lmax=9223372036854775807; //焼きなましの定数 double TIME_LIMIT=980; double start_temp=2000.0; double end_temp=10.0; //入力など int n, m; int a[100], b[100]; int c[8], d[8]; int v=100; vector<int> t(100), r(100); //乱数の準備 int seed=1; //auto seed=(unsigned)time(NULL); mt19937_64 mt(seed); void inpt(){ cin>> n >> m; rep(i, 100){ cin>> a[i] >> b[i]; // a[i]=mt()%1001; // b[i]=mt()%1001; } } void init(){ rep(i, 100){ t[i]=1; r[i]=i+1; } shuffle(all(r), mt); rep(i, 8){ c[i]=mt()%1001; d[i]=mt()%1001; } } //初回用スコアの計算 // void init_score(){ // rep(i, n){ // // cout<< "(x, y)= " << x[i] SP << y[i] <<endl; // // cout<< x[i]/(20000/sec)+sec/2 SP << y[i]/(20000/sec)+sec/2 <<endl; // //bo[int((x[i]+10000)/20000.0*(sec))][int((y[i]+10000)/20000.0*(sec))]++; // int xx, yy; // rep(j, sec){ // if((py[j]-y[i])*(py[j+1]-y[i])<=0){ // xx=j+1; // break; // } // } // rep(j, sec){ // if((px[j+sec+1]-x[i])*(px[j+sec+2]-x[i])<=0){ // yy=j+1; // break; // } // } // // if(xx<0 || sec<xx || yy<0 || sec<<yy){ // // d[1]=100000000; // // }else{ // // bo[xx][yy]++; // // } // bo[xx][yy]++; // } // rep(i, sec+1) rep(j, sec+1) d[bo[i][j]]++; // // rep(i, sec+1){ // // rep(j, sec+1){ // // cout<< bo[i][j] SP; // // } // // cout<< endl; // // } // // rep(i, 5001){ // // if(d[i]) cout<< "(i, cnt)= " << i SP << d[i] <<endl; // // } // } // void score(){ // int cor=0; // int ev=0; // rep3(i, 11, 1){ // cor+=min(a[i], d[i]); // //cor-=abs(a[i]-d[i]); // } // rep3(i, 50, 11){ // ev+=d[i]*i*i; // cor-=d[i]; // } // psco=round(1000000.0*cor/sua); // pev=ev; // } void print_ans(){ rep(i, 8) cout<< c[i] SP << d[i] <<endl; cout<< t.size() <<endl; rep(i, t.size()) cout<< t[i] SP << r[i] <<endl; } int main(){ //開始時間の計測 std::chrono::system_clock::time_point start, current; start = chrono::system_clock::now(); //入力 inpt(); //初期状態の計算 init(); print_ans(); return 0; //焼きなまし int lp=0; // while (true) { // 時間の許す限り回す // lp++; // //cout<< lp <<endl; // current = chrono::system_clock::now(); // 現在時刻 // if (chrono::duration_cast<chrono::milliseconds>(current - start).count() > TIME_LIMIT) break; // //if(lp==20000) break; // int type=mt()%2+1; // int idx; // int mvp; // int mvm; // int del; // if(type==1){ // //横の線(1~sec-1)をずらす // idx=mt()%(sec-1)+1; // mvp=(py[idx+1]-py[idx])/5; // mvm=(py[idx]-py[idx-1])/5; // del=mt()%(mvp+mvm)-mvm; // py[idx]+=del; // qy[idx]+=del; // }else{ // //縦の線(横の線+sec)をずらす // idx=mt()%(sec-1)+2+sec; // mvp=(px[idx+1]-px[idx])/5; // mvm=(px[idx]-px[idx-1])/5; // del=mt()%(mvp+mvm)-mvm; // px[idx]+=del; // qx[idx]+=del; // } // // cout<< "idx=" << idx <<endl; // // cout<< "mvp=" << mvp <<endl; // // cout<< "mvm=" << mvm <<endl; // // cout<< "del=" << del <<endl; // rep(i, 60) rep(j, 60) bo[i][j]=0; // rep(i, 50) d[i]=0; // init_score(); // score(); // // 温度関数 // double temp = start_temp + (end_temp - start_temp) * chrono::duration_cast<chrono::milliseconds>(current - start).count() / TIME_LIMIT; // // 遷移確率関数(最大化の場合) // double prob = exp((psco-nsco)/temp); // if (prob > (mt()%imax)/(double)imax) { // 確率probで遷移する // //if (nsco<psco) { // nsco=psco; // nev=pev; // }else{ // if(type==1){ // py[idx]-=del; // qy[idx]-=del; // }else{ // px[idx]-=del; // qx[idx]-=del; // } // } // } print_ans(); return 0; }