QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212900#6824. Demonstrational Sequencesnameless_story#TL 2089ms71856kbC++231.9kb2023-10-13 22:32:242023-10-13 22:32:26

Judging History

你现在查看的是最新测评结果

  • [2023-10-13 22:32:26]
  • 评测
  • 测评结果:TL
  • 用时:2089ms
  • 内存:71856kb
  • [2023-10-13 22:32:24]
  • 提交

answer

#include"bits/stdc++.h"
using namespace std;
typedef unsigned long long ll;
template<class T1,class T2> bool cmax(T1 &x,const T2 &y) { if (x<y) { x=y; return 1; }return 0; }
#define all(x) (x).begin(),(x).end()
const ll N=1e7+2,M=3e4+5,NN=3e5+5,Q=1<<20|5;
bool ed[N];
ll c[NN+1];
mt19937 rnd(235);
vector<int> buc[Q];
int main()
{
	ios::sync_with_stdio(0); cin.tie(0);
	cout<<fixed<<setprecision(15);
	ll p,q,i,j;
	int T;
	cin>>p>>q>>T;
	p/=q;
	map<pair<ll,ll>,int> ans;
	for (i=0; i<N; i++) if (gcd(i,p)==1) ed[i]=1;
	p*=q;
	// assert(ed[2]);
	while (T--)
	{
		auto cal=[&]()
			{
				ll a,b,d,dmq;
				int tot=1e6,i,j;
				for (i=0; i<q; i++) buc[i].clear();
				cin>>a>>b;
				// a=2022;b= 924;
				a%=p; b%=p;
				if (ans.count({a,b})) return ans[{a,b}];
				c[0]=a;
				for (i=1; i<=NN; i++) c[i]=(c[i-1]*c[i-1]+b)%p;
				shuffle(c+5000,c+NN+1,rnd);
				// cerr<<c[0]<<' '<<c[3]<<' '<<q<<endl;
				vector<ll> occ;
				for (i=0; i<=M; i++) occ.push_back(c[i]%q);
				sort(all(occ)); occ.resize(unique(all(occ))-occ.begin());
				for (ll x:occ) buc[x].clear();
				for (i=0; i<=M; i++) buc[c[i]%q].push_back(c[i]/q);
				// cerr<<occ.size()<<endl;
				for (ll x:occ)
				{
					auto &v=buc[x];
					int m=v.size();
					// if (x==1) cerr<<v[0]<<' '<<v[1]<<endl;
					sort(all(v)); v.resize(unique(all(v))-v.begin());
					// if (x==1) assert(count(all(v),0)&&count(all(v),2));
					// cerr<<x<<endl;
					for (i=0; i<m; i++)
					{
						// cerr<<i<<endl;
						for (j=i-1; j>=0; j--)
						{
							// if (x==1&&i==1&&j==0) cerr<<i<<' '<<j<<endl;
							if (v[i]-v[j]<N&&ed[v[i]-v[j]]) return ans[{a,b}]=1;
							// if (v[j]-v[i]<N&&ed[v[j]-v[i]]) return ans[{a,b}]=1;
							// if (v[i]+pq-v[j]<N&&ed[v[i]+pq-v[j]]) return ans[{a,b}]=1;
						}
						// tot-=min<int>(tot,i-1);
					}
				}
				return ans[{a,b}]=0;
			};
		cout<<cal();
	}
	cout<<endl;
}

详细

Test #1:

score: 100
Accepted
time: 618ms
memory: 40768kb

input:

15 5 5
1 1
1 2
2 4
4 8
8 16

output:

11010

result:

ok "11010"

Test #2:

score: 0
Accepted
time: 802ms
memory: 40892kb

input:

998244352 1048576 3
2022 924
12345678 1234567
23333333 6666666

output:

001

result:

ok "001"

Test #3:

score: 0
Accepted
time: 165ms
memory: 42204kb

input:

100237 100237 10
1244422970085542683 6256585832417115176
11178595626727644735 679276059713497324
5646838801370008540 6709514788466664568
9971158657914728691 8724448042786063799
9867649407902336110 2614925263502318093
1990105069810770727 8671216841234378816
7965667786524489724 6722337513023700570
246...

output:

1111111111

result:

ok "1111111111"

Test #4:

score: 0
Accepted
time: 1941ms
memory: 40644kb

input:

1000000007 1 200
1244424352052424851 13102057264748565738
10964128241743967010 11238647915096906960
9602909082986968021 14247804011443894396
13231275623402659328 11122445945926639224
1819715673773979255 15011227386780949150
10389668459305004672 13595253579372877142
136927098471150438 141908708541553...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #5:

score: 0
Accepted
time: 125ms
memory: 40588kb

input:

1 1 200
1244422970079336291 4707347560601392081
16633665001192110076 15773758607538398243
11070497290011093392 11929979209055974561
8355738147346006300 6479245221430563815
10109334084151275293 11867087657669754231
17442584295523326999 11181890936205849132
9065910826445511105 4364106058213150008
3158...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #6:

score: 0
Accepted
time: 1719ms
memory: 56968kb

input:

1829276567 1223 200
1244422970077270675 3806627635127557106
13984072790700162529 11560843058580181248
18218320506679528544 11095342096011758221
4400021764111680243 2513593206800052431
18199847053143773541 12194057128449124778
13449463383710867755 15111229049249507634
9142159878193341647 851735763810...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #7:

score: 0
Accepted
time: 1576ms
memory: 69512kb

input:

1916775961 43781 200
1244422991562533611 2581648536462341184
10846740824576506379 9993690399888017205
8345302117372117052 12258730889585496219
6487130277971010241 11996418174856728756
8151541988194450093 17962020692109166031
5265702935744667861 3426174342122309619
3337825504340444832 108442264083652...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #8:

score: 0
Accepted
time: 1564ms
memory: 70488kb

input:

1992104689 44633 200
1244423004569553187 708151091329533332
9122468538725959348 6266937734283537059
17378118143373524488 14143033550582754474
9766586826768167785 1594616520143492866
734438740803221400 11158266026263179425
460036223567287536 4242791159789103332
17830443150457246178 422414602667113372...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #9:

score: 0
Accepted
time: 2089ms
memory: 71856kb

input:

200474 100237 200
1244422970085542683 6256585832417115176
11178595626727644735 679276059713497324
15646838801370008540 16709514788466664568
9971158657914728691 8724448042786063799
9867649407902336110 2614925263502318093
1990105069810770727 8671216841234378816
17965667786524489724 6722337513023700570...

output:

00000000111111010001100001000000010001111000110000000010001010010000100001001001010100100011010000100000100110100000000000001000000010000000000000000000000100010000010000001000000010000000010110000000

result:

ok "000000001111110100011000010000...0001000000010000000010110000000"

Test #10:

score: 0
Accepted
time: 1575ms
memory: 40772kb

input:

200474 2 200
1244422970290369323 10652099068730767710
8319150041957358027 4252860857770083514
2283720720491098640 10687885864933740120
2825325290598596007 6440406404796000441
6950945943062257465 15095351257240999518
2718104921152369583 1084988046635922392
16727496739401426409 4394616015239803414
169...

output:

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

result:

ok "111111111111111111111111111111...1111111111111111111111111111111"

Test #11:

score: -100
Time Limit Exceeded

input:

4263743276 45077 200
1623855933086673195 1394720197804715148
594107206097182228 18010286562889463890
9232604372259259000 11733065843529966425
5391787691872768215 17960957873981251752
3586770739608645055 9993896394458670052
13988642877924042007 4434275232993882359
17191799348415529968 309677586807292...

output:


result: