FZU 1704 高斯消元
来源:互联网 发布:林原惠美 知乎 编辑:程序博客网 时间:2024/06/16 17:16
这题其实就是求自由变量的个数n 然后就有2^n种方法
注意要用到高精度 一开始不知道错在哪 wa了一天 最后得知是高精度的问题...
#include<cstdlib>#include<cstring>#include<cstdio>#include<string>#include<cmath>typedef long long ll;#define exp 1e-8#define up(i,x,y) for(i=x;i<=y;i++)#define down(i,x,y) for(i=x;i>=y;i--)#define mem(a,x) memset(a,x,sizeof(a))using namespace std;const int MAXN=110;const int mod=1000000007;const int inf=0x3f3f3f3f;//对2取模的01方程组//有equ个方程,var个变元。增广矩阵行数为equ,列数为var+1,分别为0到varint equ,var;int a[MAXN][MAXN]; //增广矩阵int x[MAXN]; //解集int free_x[MAXN];//用来存储自由变元(多解枚举自由变元可以使用)int free_num;//自由变元的个数int n;//返回值为-1表示无解,为0是唯一解,否则返回自由变元个数int Gauss(){ int i,j,k,max_r,col; free_num=0; for(k=0,col=0;k<equ&&col<var;k++,col++) { max_r=k; for(i=k+1;i<equ;i++) { if(abs(a[i][col])>abs(a[max_r][col])) max_r=i; } if(a[max_r][col]==0) { free_x[free_num++] = col;//这个是自由变元 k--; continue; } if(max_r!=k) { for(j=col;j<var+1;j++) { swap(a[k][j],a[max_r][j]); } } for(i=k+1;i<equ;i++) { if(a[i][col]!=0) { for(j=col;j<var+1;j++) { a[i][j]^=a[k][j]; } } } } return var-k; }int gaojingdu(int n){ const int x = 2;//计算x的n次方 int a1[1000] = { 0 }; int b = 0;//用来计算向前 进的数字 a1[999] = 1; for (int i = 0; i<n; i++){ int j = 999; while (j >= 0){ int k = a1[j] * x + b; a1[j] = k % 10; b = k / 10; j--; } } int s; for (s = 0; s<1000; s++){ if (a1[s] != 0) break; } printf("%d",a1[s]); s++; for (; s<1000; s++){ printf("%d",a1[s]); } printf("\n"); return 1;}int main(){ int T,i,j; int n,m; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); var=m; equ=n; mem(a,0); mem(x,0); for(i=0;i<n;i++) { scanf("%d",&a[i][m]); } for(i=0;i<m;i++) { int k,t; scanf("%d",&k); while(k--) { scanf("%d",&t); a[t-1][i]=1; } } int tt=Gauss(); if(tt==0) printf("1\n"); else gaojingdu(tt); } return 0;}
阅读全文
0 0
- FZU 1704 高斯消元
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- 数组的维数
- 1117:整除的尾数
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- Android Studio插件开发1之插件介绍与环境搭建
- 简单工厂模式
- FZU 1704 高斯消元
- Billboard
- 好的开始意味成功的一半?!
- cocos2dx跨平台游戏PoetryInGame
- FreeRTOS 基础简介
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- Python复制的问题——浅拷贝和深拷贝
- Python 基于Tkinter的GUI图形界面学习
- 【数据挖掘知识点三】大数定理与中心极限定理