uva个人训练
-Charlie-
这个作者很懒,什么都没留下…
展开
-
uva11768 Lattice Point or Not
比较经典的扩展欧几里德求整数解的问题对于两个点(x1,y1)(x2,y2),如果点为整数点,那么必定能通过扩展欧几里德求出区间中的整点个数,即对方程(y2-y1)x+(x1-x2)y=x1y2-x2y1 求解。由于此题的点精确到小数后1位,我们可以将x1,y1,x2,y2分别放大10倍,问题转变成对方程[10*(y2-y1)]x+[10(x1-x2)]y=100*(x1y2-x2y1)求解...原创 2018-08-14 18:26:19 · 175 阅读 · 0 评论 -
uva10951(欧拉降幂)
经典的欧拉降幂问题。 欧拉降幂公式:nx mod m = nφ(m)+(x mod φ(m))这个公式当且仅当x>φ(m)时成立。//欧拉降幂公式#include<bits/stdc++.h>using namespace std;typedef long long LL;#define MOD(x,m) (x>m)?m+x%m:xint n, m,...原创 2018-08-14 19:49:31 · 420 阅读 · 0 评论 -
uva10951(多项式gcd)
类比整数辗转相除法,此题为多项式辗转相除法求最大公因多项式#include<bits/stdc++.h>using namespace std;const int maxn = 1e5;typedef vector<int> vint;int n, x, y, t, kase, a[105];vint f, g, ans;void read(int &...原创 2018-08-14 19:51:33 · 952 阅读 · 0 评论 -
uva11490
注意到S<=1e12,当S取到最大值时候,每个方块外部的士兵厚度仅有68041,可以考虑枚举士兵厚度求解。#include<bits/stdc++.h>using namespace std;typedef long long LL;const long long mod = 1e8 + 7;LL S;int main(){ while (scanf("%...原创 2018-08-14 19:54:11 · 266 阅读 · 0 评论