QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#205211 | #7562. Except One | ucup-team198# | AC ✓ | 1ms | 3532kb | C++23 | 1.1kb | 2023-10-07 15:10:49 | 2023-10-07 15:10:49 |
Judging History
answer
#include <array>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define endl '\n'
using LL=long long;
using Mat=array<array<LL,2>,2>;
int p;
Mat mul(Mat x,Mat y) {
Mat res{};
for(int i=0;i<2;i++) {
for(int k=0;k<2;k++) {
for(int j=0;j<2;j++) {
res[i][j]=(res[i][j]+(x[i][k]*y[k][j]%p))%p;
}
}
}
return res;
}
Mat qpow(Mat x,int k) {
Mat res{};
res[0][0]=res[1][1]=1;
while(k) {
if(k&1) res=mul(res,x);
k>>=1;
x=mul(x,x);
}
return res;
}
void solve() {
int k,t;
cin>>p>>k>>t;
LL sum1=(LL(p-1)*p/2-k)%p;
LL sum2=((__int128(p-1)*(p)*(2*(p-1)+1)/6)%p);
Mat dp{};
dp[0][0]=0;
dp[0][1]=-sum2+p;
dp[1][0]=1;
dp[1][1]=sum1;
dp=qpow(dp,t-1);
Mat res{};
res[0][0]=1;
res[0][1]=sum1;
res=mul(res,dp);
cout<<res[0][1]<<endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3460kb
input:
7 5 3
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3408kb
input:
11 6 7
output:
3
result:
ok 1 number(s): "3"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
3 2 1
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3464kb
input:
596620183 516846890 38276329
output:
135352707
result:
ok 1 number(s): "135352707"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3460kb
input:
382744931 85302262 235496559
output:
14577469
result:
ok 1 number(s): "14577469"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3424kb
input:
659446013 641119314 378275666
output:
290624162
result:
ok 1 number(s): "290624162"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3460kb
input:
227 163 124
output:
189
result:
ok 1 number(s): "189"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3400kb
input:
197 187 19
output:
62
result:
ok 1 number(s): "62"
Test #9:
score: 0
Accepted
time: 0ms
memory: 3428kb
input:
5 3 3
output:
3
result:
ok 1 number(s): "3"
Test #10:
score: 0
Accepted
time: 1ms
memory: 3424kb
input:
7 6 4
output:
1
result:
ok 1 number(s): "1"
Test #11:
score: 0
Accepted
time: 0ms
memory: 3488kb
input:
7 1 1
output:
6
result:
ok 1 number(s): "6"
Test #12:
score: 0
Accepted
time: 0ms
memory: 3472kb
input:
782371 586755 418517
output:
298550
result:
ok 1 number(s): "298550"
Test #13:
score: 0
Accepted
time: 0ms
memory: 3412kb
input:
181081 178315 76002
output:
125177
result:
ok 1 number(s): "125177"
Test #14:
score: 0
Accepted
time: 1ms
memory: 3532kb
input:
715019 492103 446729
output:
221541
result:
ok 1 number(s): "221541"
Test #15:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
238985261 199832612 162675695
output:
65826267
result:
ok 1 number(s): "65826267"
Test #16:
score: 0
Accepted
time: 0ms
memory: 3424kb
input:
129716453 10994076 62963738
output:
5186275
result:
ok 1 number(s): "5186275"
Test #17:
score: 0
Accepted
time: 0ms
memory: 3424kb
input:
962360593 652577122 345596237
output:
814039152
result:
ok 1 number(s): "814039152"
Test #18:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
871606937 839183139 754188014
output:
466391387
result:
ok 1 number(s): "466391387"
Test #19:
score: 0
Accepted
time: 0ms
memory: 3460kb
input:
275568091 270750503 241146839
output:
252569968
result:
ok 1 number(s): "252569968"
Test #20:
score: 0
Accepted
time: 0ms
memory: 3404kb
input:
562028473 111749710 450258818
output:
63116256
result:
ok 1 number(s): "63116256"