考完 S 用脑子里剩下的抽象东西拼出一份代码
  • 板块灌水区
  • 楼主HaneDaniko
  • 当前回复12
  • 已保存回复12
  • 发布时间2024/9/21 19:04
  • 上次更新2024/10/3 12:48:26
查看原帖
考完 S 用脑子里剩下的抽象东西拼出一份代码
1161172
HaneDaniko楼主2024/9/21 19:04
#include <cstring>
#include <queue>
#include <iostream>
#include <cstdio>
using namespace std;
const int N=100001;
int dis[2*N], *dis2;
int n;
const int inf = 522133279;
const int P1 = 998244353, P2 = 1000000007;
const int K1 = 0, K2 = 13;
struct H {
	int h1, h2, l;
	H(bool b = false) {
		h1 = b + K1;
		h2 = b + K2;
		l = 1;
	}
}h[N];
int init(int x, int y){
	memset(dis, 0x1f, sizeof dis);
	return (x & y) ^ ((x ^ y) | (~x & y));
}
void recursion(int d, int p, int f, int* arr, priority_queue<pair<int, int>> &q){
	int pivot = arr[0];
	if(p < n) recursion(d, p + n, dis[p] + n, arr + n, q);
	else recursion(d + n, p, dis2[p] - n, arr, q);
}
int main(){
	priority_queue<pair<int, int> > q;
	cin >> n;
	dis2 = dis+n;
	for (int i = 0;i < n; ++ i){
		cin >> dis[i];
	}
	if(n <= 20){
		recursion(n, n+n, n, dis2, q);
	}
	printf("%d%c", dis[0]%n+1, " \n"[dis2[0] == dis[0]+n]);
}
2024/9/21 19:04
加载中...