結果
問題 | No.3 ビットすごろく |
ユーザー |
![]() |
提出日時 | 2019-09-24 23:36:34 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 529 bytes |
コンパイル時間 | 780 ms |
コンパイル使用メモリ | 56,176 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-19 14:50:05 |
合計ジャッジ時間 | 1,398 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 WA * 28 |
ソースコード
#include <iostream> #include <cstring> using namespace std; template<class T> inline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;} int sgrk[10051]; int dp[20001]; int main(){ int n; cin >> n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j*=2){ if((i & j)!=0) sgrk[i]++; } } memset(dp,1000000,sizeof(dp)); dp[1]=1; for(int i=1;i<=n;i++){ chmin(dp[i+sgrk[i]],dp[i]+1); if(i-sgrk[i]>0)chmin(dp[i-sgrk[i]],dp[i]+1); } cout << dp[n] << endl; }