結果
問題 | No.1284 Flip Game |
ユーザー |
![]() |
提出日時 | 2020-11-10 11:32:05 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 773 bytes |
コンパイル時間 | 552 ms |
コンパイル使用メモリ | 34,324 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-22 17:22:49 |
合計ジャッジ時間 | 1,775 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
コンパイルメッセージ
main.c:9:1: warning: return type defaults to 'int' [-Wimplicit-int] 9 | main(){ | ^~~~ main.c: In function 'main': main.c:11:9: warning: implicit declaration of function 'read' [-Wimplicit-function-declaration] 11 | read(0,rbuf,sizeof rbuf); | ^~~~ main.c:51:17: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] 51 | printf("%d",v); | ^~~~~~ main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'printf' +++ |+#include <stdio.h> 1 | #pragma GCC optimize("Ofast") main.c:51:17: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch] 51 | printf("%d",v); | ^~~~~~ main.c:51:17: note: include '<stdio.h>' or provide a declaration of 'printf'
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} int c[9][9]; int d[1<<18][9]; main(){ char rbuf[1024]; read(0,rbuf,sizeof rbuf); char*rp=rbuf; RD(n); for(int y=0;y<n;++y){ for(int x=0;x<n;++x){ RD(t); c[y][x]=t; } } // morau-dp for(int m=0;m<1<<n+n;){ for(int i=0;i<n;++i){ int v=2e9; if(m&3<<i+i){ for(int j=0;j<n;++j){ if(j!=i){ int w=d[m-(1<<i+i)][j]+c[i][j]; v=v>w?w:v; } } if(m==1<<i+i|m==2<<i+i){ v=0; } } d[m][i]=v; } m+=1; int t; while(t=m&m>>1&0x15555){ m+=t; } } { int m=(1<<n+n)-1&0x2aaaa; int v=2e9; for(int i=0;i<n;++i){ if(v>d[m][i]){ v=d[m][i]; } } printf("%d",v); } }