首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
BZOJ1407 [Noi2002]Savage
】的更多相关文章
BZOJ1407 NOI2002 Savage 【Exgcd】
BZOJ1407 NOI2002 Savage Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) Output 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. Sample Input 3 1 3 4 2 7 3 3 2 1 Samp…
BZOJ1407 [Noi2002]Savage 【扩展欧几里得】
题目链接 BZOJ1407 题解 枚举\(m\)用扩欧判即可 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #define REP(i,n) for (int i = 1; i <= (n); i++) using namespace std; const int maxn = 20,maxm = 10000…
[BZOJ1407][NOI2002]Savage(扩展欧几里德)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1407 分析: m,n范围都不大,所以可以考虑枚举 先枚举m,然后判定某个m行不行 某个m可以作为一个解当且仅当: 对于任意的i,j 模方程:c[i]+x*p[i]=c[j]+x*p[j] (mod m) 无解或者最小正整数解>min(l[i],l[j]) 这个可以用扩展欧几里德解决. 因为n<=15,所以可以暴力枚举每对i,j…
BZOJ1407 [Noi2002]Savage
Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) Output 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. Sample Input 3 1 3 4 2 7 3 3 2 1 Sample Output 6 //该样例对应于题目描述…
BZOJ1407: [Noi2002]Savage exgcd
Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) Output 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. Sample Input 3 1 3 4 2 7 3 3 2 1 Sample Output 6 //该样例对应于题目描述…
【数学 exgcd】bzoj1407: [Noi2002]Savage
exgcd解不定方程时候$abs()$不能乱加 Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) Output 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. Sample Input 3 1 3 4 2 7 3 3 2 1 Samp…
bzoj1407 [Noi2002]Savage——扩展欧几里得
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 看到一定有解,而且小于10^6,所以可以枚举: 判断一个解是否可行,就两两判断野人 i , j 能否满足在寿命内不相遇: 也就是 T*pi + ci ≡ T*pj + cj (mod m) 变成 ( pi - pj )*T + km = cj - ci 用扩展欧几里得解这个方程,得到T若大于两人中较小的寿命或无解则可行. 代码如下: #include<iostream> #inc…
BZOJ 1407: [Noi2002]Savage( 数论 )
枚举答案, 然后O(N^2)枚举野人去判他们是否会在有生之年存在同山洞. 具体做法就是: 设第x年相遇, 则 Ci+x*Pi=Cj+x*Pj (mod M), 然后解同余方程. 复杂度应该是O(ans*N^2log(ans)), 但是实际远小于....能够AC -------------------------------------------------------------------- #include<cstdio> #include<algorithm> #inclu…
[Noi2002]Savage
[Noi2002]Savage 数学题. 题解回去写(有个坑点) flag++ #include <cstdio> int n,m,c[25],p[29],l[29]; int exgcd(int a,int b,int &x,int &y){ if(!b){x=1,y=0;return a;} int ans=exgcd(b,a%b,x,y),t=x; x=y,y=t-a/b*y; return ans; } int max(int a,int b){return a>…
[Noi2002]Savage 题解
[Noi2002]Savage 时间限制: 5 Sec 内存限制: 64 MB 题目描述 输入 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) 输出 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. 样例输入 3 1 3 4 2 7 3 3 2 1 样例输出 6 //…