代码的离奇错误
  • 板块学术版
  • 楼主_Weslie_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/31 21:02
  • 上次更新2024/7/31 22:35:46
查看原帖
代码的离奇错误
511959
_Weslie_楼主2024/7/31 21:02

rt。题目:CF207A1。

Code:

#include<bits/stdc++.h>
using namespace std;
int dp[2005][2005][2];
int n;
int k[3];
long long x,y,a[2005][2005],m;
int duan[2005][2005],cnt[2],now[2];
int pan(long long a,long long b){
	if(a>=b)return 0;
	return 1;
}
//int cnt=0;
priority_queue<pair<long long,int> >q;
signed main(){
	cin>>n;
	cin>>k[1]>>a[1][1]>>x>>y>>m;
	for(int i=2;i<=k[1];i++){
		a[1][i]=(a[1][i-1]*x+y)%m;
		if(a[1][i]<a[1][i-1]){
			duan[1][++cnt[1]]=i;
		}
	}
	cin>>k[2]>>a[2][1]>>x>>y>>m;
	for(int i=2;i<=k[2];i++){
		a[2][i]=(a[2][i-1]*x+y)%m;
		if(a[2][i]<a[2][i-1]){
			duan[2][++cnt[2]]=i;
		}
	}
	duan[1][++cnt[1]]=k[1];
	duan[2][++cnt[2]]=k[2];
//	cout<<cnt[2]<<endl;
	cout<<max(cnt[1],cnt[2])-1<<endl;
	for(int i=1;i<=max(cnt[1],cnt[2]);i++){
		for(int j=1;j<=n;j++){
//			j=2;
//			if(cnt[j]<i)continue;
			cout<<j<<' '<<i<<endl;
/*
这行比较奇葩:如果输出了,答案除掉这里的输出就是
0
1 1
2 1
3 2
4 2
但是如果没有输出,就是
0
1 1
2 1。
*/
			now[j]++;
			for(;now[j]<=duan[j][i];now[j]++){
//				cout<<j<<' '<<now[j]<<endl;
				pair<long long,int>ans;
				ans.first=-a[j][now[j]];
				ans.second=j;
				q.push(ans);
			}
		}
		while(!q.empty()){
			cout<<-q.top().first<<' '<<q.top().second<<endl;
			q.pop();
		}
	}
	return 0;
}
2024/7/31 21:02
加载中...