首页 > 其他分享 >P321. [NOI2002]荒岛野人Savage题解?!!!

P321. [NOI2002]荒岛野人Savage题解?!!!

时间:2024-04-19 23:23:11浏览次数:19  
标签:Savage maxx P321 int 题解 枚举 ans 20 mod

还是我

容易(☚xzz说的)想出,x年后i号野人的位置为:\((C_i+P_i*x)\mod m\)

我们只要让任意方程:\((C_i+P_i*x)\mod m=(C_j+P_j*x)\mod m\) 解小于\(L_i\)或小于\(L_j\)即可

推式子!

\[(C_i+P_i*x)≡(C_j+P_j*x)\ (mod ~m)\\ ⇿x*(P_i-P_j)+y*m=C_j-C_i \]

然后就是拓展欧几里得模板了。

(第一层枚举m,第二层枚举i,第三层枚举j)

#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,y,ans,n,c[20],p[20],l[20];
int ojld(int a,int b){
	if(!b){
		x=1;
		ans=a;
		return a;
	}
	ans=ojld(b,a%b);
	int t=y;
	y=x-a/b*t;
	x=t;
	return ans;
}
signed main(){
	cin>>n;
	int maxx=0;
	for(int i=1;i<=n;i++){
		cin>>c[i]>>p[i]>>l[i];
		maxx=max(maxx,c[i]);
	}
	for(int k=maxx;;k++){
		int flag=0;
		for(int i=1;i<=n;i++){
			for(int j=i+1;j<=n;j++){
				int a=p[i]-p[j],b=k;
				a=(a%k+k)%k;
				x=0,y=0;
				ojld(a,b);
				if((c[j]-c[i])%ans){
					continue;
				}
				x*=(c[j]-c[i])/ans;
				int mod=k/ans;
				x=(x%mod+mod)%mod;
				if(x<=l[i]&&x<=l[j]){
					flag=1;
					break;
				}
			}
			if(flag){
				break;
			}
		}
		if(flag){
			continue;
		}
		cout<<k;
		break;
	}
	return 0;
}

标签:Savage,maxx,P321,int,题解,枚举,ans,20,mod
From: https://www.cnblogs.com/lewisak/p/18146980

相关文章

  • 题解:CSP-S2020] 函数调用
    题解:CSP-S2020]函数调用一句话题意:给定一个有初始值的序列,支持如下三种操作:1、单点加2、全局乘3、递归某些操作1、2、3求最终的序列。标签:topsort,动态规划,转化贡献统计(集中贡献),主客翻转关于topsort:部分分里的树结构基本上直接暗示了正解要使用topsort,而且本来函......
  • CF1713F Lost Array 题解
    题目链接点击打开链接题目解法很牛的题!!!先考虑\((0,i)\)对\((j,n)\)的贡献,因为是异或,所以只要考虑奇偶性问题可以抽象成一条路径对应\(a_i\)的贡献,所以是否有\(a_i\)的贡献看\(\binom{n-i+j-1}{j-1}\)的奇偶性根据\(kummer\)定理,这个组合数是奇数当且仅当\(n-i+......
  • [题解][洛谷P1412] 经营与开发
    题目描述给定n,k,c,w,然后输入n组数据,数据分为两种:1ai:可以选择获得aiw的价值,但w会变成w(1-0.01*k)2bi:可以选择损失biw的价值,但w会变成w(1+0.01*c)求可获得的最大价值是多少。题解看到这个题,我的第一思路是求后缀和,然后让新得到的系数乘后缀和判断是否进行操作。但问题在于,对于......
  • 高斯消元学习笔记——P304题解
    如果你觉得这篇太啰嗦问题[SDOI2006]线性方程组题目描述已知\(n\)元线性一次方程组。\[\begin{cases}a_{1,1}x_1+a_{1,2}x_2+\cdots+a_{1,n}x_n=b_1\\a_{2,1}x_1+a_{2,2}x_2+\cdots+a_{2,n}x_n=b_2\\\cdots\\a_{n,1}x_1+a_{n,2}x......
  • ABC349F题解
    思想看到LCM想到质因数分解。首先,我们先把\(M\)质因数分解了,根号复杂度刚好1e8级别。然后我们发现一个很显然的性质:如果一个数不是\(M\)的因数那他肯定没用。所以此处我们就把不是因数地踢掉。我们惊奇地发现因为\(M\)的质因数分解最多\(13\)个不同的质数,然后我......
  • 题解 LGP5397【[Ynoi2018] 天降之物】/ 第四分块
    题解P5397【[Ynoi2018]天降之物】/第四分块题目描述一个长为\(n\)的序列\(a\)。你需要实现\(m\)个操作,操作有两种:把序列中所有值为\(x\)的数的值变成\(y\)。找出一个位置\(i\)满足\(a_i=x\),找出一个位置\(j\)满足\(a_j=y\),使得\(|i-j|\)最小,并输出\(|i-......
  • vsCode无法连接服务器问题解决及思考
    背景早上刚打开电脑,准备开始一天的工作。但是发现VSCode无法连接上我的虚拟机了,导致无法工作了,这让我十分头疼。最终花了将近一天的时间将问题解决,但是其中的过程走了不少弯路,浪费了不少时间,也进行了反思。我们作为开发人员,应该要用软件思维去理解这款产品,帮助我们去思考问题。......
  • P4168 [Violet] 蒲公英(题解)
    题目题目描述输入格式输出格式数据范围![]样例输入:63123212153615输出:121思路暴力本题求区间内的最小众数,容易想到去用数组sum[i]表示第i种花的个数,在去便利比较,但是复杂度nm一定会T,这时候就要对暴力进行优化。分块优化1如果我们将所......
  • Codeforces Round 932 (Div. 2)题解(c、d)
    CodeforcesRound932(Div.2)C.MessengerinMAC题目大意给定一些\(a_i\)\(和b_i\),选出尽量多的\(a_i和b_i\),使得\(\sum_{i=1}^ka_{p_i}+\sum_{i=1}^{k-1}\left|b_{p_i}-b_{p_{i+1}}\right|\)小于给定的\(l\)。题目解析由于题目没有要求\(\{p\}\)是升序排列的序列,因此......
  • P6018 [Ynoi2010] Fusion tree 题解
    题目链接:Fusiontree大部分人貌似用的边权01Trie,实际这题用点权01Trie类似文艺平衡树去写更方便。考虑两种常见的区间维护:线段树。使用的是父节点信息是归并了左右区间的信息,适用于不需要考虑父节点的贡献的信息。文艺平衡树。每个点就是一个信息,归并左右子树,外加当......