QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#572165 | #6425. Harmonious Rectangle | Zhi_zI# | WA | 0ms | 3748kb | C++17 | 2.1kb | 2024-09-18 12:44:00 | 2024-09-18 12:44:01 |
Judging History
answer
#include <bits/stdc++.h>
/* Orther */
#define int long long
#define YES cout<<"YES\n"
#define NO cout<<"NO\n"
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
using namespace std;
/* Pair */
#define x first
#define y second
/* Data type */
using ll = long long;
using ull = unsigned long long;
using PII = pair<int,int>;
using VI = vector<int>;
/* STL */
#define eb emplace_back
#define ef emplace_front
#define pb push_back
#define pf push_front
#define mp make_pair
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define all1(x) x.begin()+1,x.end()
/* Random */
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define random(a,b) rng()%(b-a+1)+a
/* Contest */
const int INF = 0x3f3f3f3f ; // 1e9
const int MOD = 1e9 + 7 ;
const int N = 2e5 + 10, M = 55;
int qpow(int a,int b ) {
a %= MOD; int res = 1;
while ( b ) {
if ( b & 1 ) {
res = res * a % MOD;
}
a = a * a % MOD;
b >>= 1;
}
return res;
}
int num[9][9] = {
/* 1 */ {0,0,0,0,0,0,0,0,0},
/* 2 */ {0,15,339,4761,52929,517761,4767849,43046721,387420489},
/* 3 */ {0,339,16485,518265,14321907,387406809,460338013,429534507,597431612},
/* 4 */ {0,4761,518265,43022385,486780060,429534507,792294829,175880701,246336683},
/* 5 */ {0,52929,14321907,486780060,288599194,130653412,748778899,953271190,644897553},
/* 6 */ {0,517761,387406809,429534507,130653412,246336683,579440654,412233812,518446848},
/* 7 */ {0,4767849,460338013,792294829,748778899,579440654,236701429,666021604,589237756},
/* 8 */ {0,43046721,429534507,175880701,953271190,412233812,666021604,767713261,966670169},
/* 9 */ {0,387420489,597431612,246336683,644897553,518446848,589237756,966670169,968803245}
} ;
void Rainbow_()
{
int n , m ;
cin >> n >> m;
if (n == 1 || m == 1 ) {
cout << 0 << '\n';
return ;
}
if ( max( n, m) > 9 ) {
cout << qpow(3 ,n * m);
return ;
} else {
n -- , m -- ;
cout << num[n][m]<<'\n';
}
}
signed main()
{
IOS;
int _ = 1;
cin >> _;
while ( _ -- )
Rainbow_();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3748kb
input:
3 1 4 2 2 3 3
output:
0 15 16485
result:
ok 3 number(s): "0 15 16485"
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3684kb
input:
10000 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 6...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 339 4761 52929 517761 4767849 43046721 387420489 4867843803810593924295345078658105427922948291...
result:
wrong output format Expected integer, but "486784380381059392429534507865...1412881026947929242461363181650" found