QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#692453 | #6425. Harmonious Rectangle | yzj123# | WA | 0ms | 3680kb | C++20 | 2.3kb | 2024-10-31 14:31:57 | 2024-10-31 14:31:58 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
const ll mod=1e9+7;
int g[10][10];
int n,m;
ll ans;
ll qmi(ll a,ll b)
{
ll res=1ll;
while(b)
{
if(b&1)res=res*a%mod;
a=a*a%mod;
b>>=1;
}
return res;
}
void dfs(int x,int y)
{
if (x == n + 1) return ;
for(int k=1;k<=3;++k)
{
g[x][y]=k;
int flag=0;
for(int i=1;i<x;++i)
{
for(int j=1;j<y;++j)
{
if((g[x][y]==g[x][j]&&g[i][j]==g[i][y])||(g[i][j]==g[x][j]&&g[i][y]==g[x][y]))
{
int cnt=m*n-(x-1)*m-y;
ans=(ans+qmi(3,cnt))%mod;
flag=1;break;
}
}
if(flag)break;
}
if(flag)continue;
int xx,yy;
if(y==m){xx=x+1;yy=1;}
else {xx=x;yy=y+1;}
dfs(xx,yy);
}
}
std::map<std::pair<int, int>, int> mp;
int a[10][10] = {
{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},
{0, 0,339,16485,518265,14321907,387406809,460338013,429534507,597431612},
{0, 0,4761,518265,43022385,486780060,429534507,792294829,175880701,246336683},
{0, 0,52929,14321907,486780060,288599194,130653412,748778899,953271190,644897553},
{0, 0,517761,387406809,429534507,130653412,246336683,579440654,412233812,518446848},
{0, 0,4767849,460338013,792294829,748778899,579440654,236701429,666021604,589237756},
{0, 0,43046721,429534507,175880701,953271190,412233812,666021604,767713261,966670169},
{0, 0,387420489,597431612,246336683,644897553,518446848,589237756,966670169,968803245}
};
signed main()
{
// for (int i = 1; i <= 9; i ++) {
// for (int j = 1; j <= 9; j ++) {
// n = i, m = j;
// ans = 0;
// dfs(1, 1);
// std::cout << ans << ',';
// }
// std::cout << '\n';
// }
int t;
std::cin >> t;
while (t --) {
int nn, mm;
std::cin >> nn >> mm;
if (std::max(nn, mm) > 9) {
std::cout << qmi(3, nn * mm) << '\n';
} else {
std::cout << a[nn][mm] << '\n';
}
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3680kb
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: 3560kb
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 59049 177147 531441 1594323 4782969 14348907 43046721 129140163 387420489 162261460 486784380 460353133 381059392 143178169 429534507 288603514 865810542 597431612 792294829 376884473 130653412 391960236 175880701 527642103 582926302 748778899 246336683 739010049 217030133 65109039...
result:
wrong answer 10th numbers differ - expected: '0', found: '59049'