社区讨论
何意味
AT_arc158_d[ARC158D] Equation参与者 7已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mi3yi94t
- 此快照首次捕获于
- 2025/11/18 10:30 3 个月前
- 此快照最后确认于
- 2025/11/18 23:50 3 个月前
测了样例没问题,交上去 WA 了。但是样例也是 WA?
本地跑样例检测输出的数符不符合要求,多次运行发现都是符合的。
这是怎么了??
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,p;
int rd(int x,int y){
int w=(rand()<<15)^rand();
return w%(y-x+1)+x;
}
void tim(int &x,int y){
x=(x*y)%p;
}
int qp(int x,int y){
int ans=1;
while(y){
if(y&1) tim(ans,x);
tim(x,x);
y>>=1;
}
return ans;
}
int inv(int x){
return qp(x,p-2);
}
int ca(int x,int y,int z,int w){
return (qp(x,w)+qp(y,w)+qp(z,w))%p;
}
bool ck(vector<int> v){
sort(v.begin(),v.end());
for(int i=0;i<(int)v.size();i++){
int w=v[i];
if(w==0) return 0;
if(i>0&&v[i]==v[i-1]) return 0;
}
for(int i:v){
cout<<i<<" ";
}
cout<<"\n";
return 1;
}
void sol(){
cin>>n>>p;
while(1){
int x=rd(1,p-1),y=rd(1,p-1),z=rd(1,p-1);
int w1=ca(x,y,z,1);
int w2=ca(x,y,z,n);
int w3=ca(x,y,z,2*n);
int w4=ca(x,y,z,3*n);
int t=w1*w2%p*w3%p*inv(w4)%p;
int it=inv(t);
tim(x,it);
tim(y,it);
tim(z,it);
if(ck({x,y,z})){
/* int g1=ca(x,y,z,1);
int g2=ca(x,y,z,n);
int g3=ca(x,y,z,2*n);
int g4=ca(x,y,z,3*n);
if(g1*g2%p*g3%p==g4){
cerr<<"ok\n";
}*/
return;
}
}
}
signed main(){
srand(chrono::steady_clock::now().time_since_epoch().count());
int ct;
cin>>ct;
while(ct--){
sol();
}
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...