2012年9月4日
摘要: 列出同余方程,高斯消元。无穷解的同时,可能出现无解,所以先判无穷解,再判无解。最后枚举答案,还可能无解。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 330 5 using namespace std; 6 int n, m; 7 int g[MAXN][MAXN], x[MAXN]; 8 int Day(char str[]) { 9 if (strcmp(str, "MON") == 0) 10 return 1; 11 if 阅读全文
posted @ 2012-09-04 22:52 DrunBee 阅读(391) 评论(0) 推荐(0)
摘要: 题意:给出n维的n+1个坐标,求一个坐标,使得n+1到该坐标的距离相等。距离定义为{(x1, x2 ... xN)| ∑(xi-Xi)^2 = R^2 (i=1,2,...,N) }首先,列出n+1个方程,显然二次项系数都为1,所以可以先把二次项消去,得到n个n元一次方程。然后,开始高斯消元。由于java在n=50时,很久都出不了答案,c++又会爆longlong,所以我们可以选择模P。ax=b的解等于ax=b(mod P)的解(x<P),这个很好证明。所以在模P下,加减乘除都很容易搞定。除法用乘以逆元,乘法用二分加法,拓展欧几里德部分的乘法是不会溢出的。为了方便处理,把输入所有的值加上 阅读全文
posted @ 2012-09-04 15:18 DrunBee 阅读(267) 评论(0) 推荐(0)
摘要: 题意:直接拿样例,37 abc。a~z表示1~26,*表示0。x0*1^0+x1*1^1+x2*1^2=1(mod 37)x0*2^0+x1*2^1+x2*2^2=2(mod 37)x0*3^0+x1*3^1+x2*3^2=3(mod 37)高斯消元,除法x等于乘以x对p的逆元。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define MAXN 110 5 using namespace std; 6 char str[MAXN]; 7 int n, p; 8 int g[ 阅读全文
posted @ 2012-09-04 12:30 DrunBee 阅读(262) 评论(0) 推荐(0)
摘要: 题意:给出n个未知数的方程组,求未知数。不是正数的用分数表示。赤裸裸的Java暴力,消元的时候用乘法相消,避免除法。 1 import java.util.*; 2 import java.math.*; 3 4 public class Main { 5 public static BigInteger g[][] = new BigInteger[110][110]; 6 7 public static boolean Gauss(int n) { 8 BigInteger tmp, a, b; 9 int i, j, k;10 ... 阅读全文
posted @ 2012-09-04 00:22 DrunBee 阅读(433) 评论(0) 推荐(0)