結果
問題 |
No.2057 Ising Model
|
ユーザー |
![]() |
提出日時 | 2022-08-29 09:49:12 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,060 bytes |
コンパイル時間 | 270 ms |
コンパイル使用メモリ | 41,432 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-06 08:42:42 |
合計ジャッジ時間 | 1,828 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 44 |
ソースコード
/* -*- coding: utf-8 -*- * * 2057.cc: No.2057 Ising Model - yukicoder */ #include<cstdio> #include<algorithm> using namespace std; /* constant */ const long long LINF = 1LL << 62; /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ /* main */ int main() { ll n; int a, b; scanf("%lld%d%d", &n, &a, &b); ll minf = a * (n - 1) - b * n; if (n & 1) minf = min(minf, -a * (n - 1) - b); else minf = min(minf, min(-a * (n - 1), -a * (n - 2) + a - b * 2)); printf("%lld\n", minf); if (false) { int nbits = 1 << n, ss[20], minss[20]; ll minf = LINF; for (int bits = 0; bits < nbits; bits++) { for (int i = 0, bi = 1; i < n; i++, bi <<= 1) ss[i] = (bits & bi) ? -1 : 1; ll f = 0; for (int i = 0; i + 1 < n; i++) f += a * ss[i] * ss[i + 1]; for (int i = 0; i < n; i++) f -= b * ss[i]; if (minf > f) minf = f, copy(ss, ss + n, minss); } printf("%lld:", minf); for (int i = 0; i < n; i++) printf(" %d", minss[i]); putchar('\n'); } return 0; }