[HIHO1196]高斯消元·二(高斯消元、枚举自由变元)

本文介绍了一种使用高斯消元法求解线性方程组的方法,并通过一个具体的程序实例展示了如何实现这一算法。代码中详细地解释了如何通过矩阵操作来找出方程组的解或者确定解的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:http://hihocoder.com/problemset/problem/1196

  1 #include <bits/stdc++.h>
  2 using namespace std;
  3 
  4 typedef pair<int, int> pii;
  5 const int maxn = 230;
  6 int equ, var;
  7 int a[maxn][maxn];
  8 int x[maxn];
  9 int free_x[maxn];
 10 int free_num;
 11 int ret;
 12 
 13 int gauss() {
 14     int max_r, col, k;
 15     free_num = 0;
 16     for(k = 0, col = 0; k < equ && col < var; k++, col++) {
 17         max_r = k;
 18         for(int i = k + 1; i < equ; i++) {
 19             if(abs(a[i][col]) > abs(a[max_r][col]))
 20                 max_r = i;
 21         }
 22         if(a[max_r][col] == 0) {
 23             k--;
 24             free_x[free_num++] = col;
 25             continue;
 26         }
 27         if(max_r != k) {
 28             for(int j = col; j < var + 1; j++)
 29                 swap(a[k][j], a[max_r][j]);
 30         }
 31         for(int i = k + 1; i < equ; i++) {
 32             if(a[i][col] != 0) {
 33                 for(int j = col; j < var + 1; j++) {
 34                     a[i][j] ^= a[k][j];
 35                 }
 36             }
 37         }
 38     }
 39     for(int i = k; i < equ; i++) {
 40         if(a[i][col] != 0)
 41             return -1;
 42     }
 43     if(k < var) return var - k;
 44     for(int i = var - 1; i >= 0; i--) {
 45         x[i] = a[i][var];
 46         for(int j = i + 1; j < var; j++) {
 47             x[i] ^= (a[i][j] & x[j]);
 48         }
 49     }
 50     return 0;
 51 }
 52 
 53 char G[maxn][maxn];
 54 int n, m;
 55 
 56 int main() {
 57     // freopen("in", "r", stdin);
 58     m = 5, n = 6;
 59     var = equ = 30;
 60     ret = 0;
 61     memset(a, 0, sizeof(a));
 62     for(int i = 0; i < n; i++) scanf("%s", G[i]);
 63     for(int i = 0; i < m; i++) {
 64         for(int j = 0; j < n; j++) {
 65             if(G[i][j] == '0') a[i*n+j][var] = 1;
 66             else a[i*n+j][var] = 0;
 67         }
 68     }
 69     for(int i = 0; i < 30; i++) {
 70         a[i][i] = 1;
 71         if(i % 6 != 0) a[i-1][i] = 1;
 72         if(i % 6 != 5) a[i+1][i] = 1;
 73         if(i > 5) a[i-6][i] = 1;
 74         if(i < 24) a[i+6][i] = 1;
 75     }
 76     int v = gauss();
 77     if(v == -1) ret = -1;
 78     else if(v != 0) {
 79         ret = maxn;
 80         int tot = 1 << v;
 81         for(int i = 0; i < tot; i++) {
 82             int cnt = 0;
 83             for(int j = 0; j < v; j++) {
 84                 if(i&(1<<j)) {
 85                     x[free_x[j]] = 1;
 86                     cnt++;
 87                 }
 88                 else x[free_x[j]] = 0;
 89             }
 90             for(int j = var - v - 1; j >= 0; j--) {
 91                 int idx;
 92                 for(idx = j; idx < var; idx++) {
 93                     if(a[j][idx]) break;
 94                 }
 95                 x[idx] = a[j][var];
 96                 for(int l = idx + 1; l < var; l++) {
 97                     if(a[j][l]) x[idx] ^= x[l];
 98                 }
 99                 cnt += x[idx];
100             }
101             ret = min(ret, cnt);
102         }
103     }
104     else for(int i = 0; i < var; i++) ret += x[i];
105     printf("%d\n", ret);
106     vector<pii> va;
107     for(int i = 0; i < 30; i++) {
108         if(x[i]) {
109             int pos = i + 1;
110             int r = 1, c = 0;
111             while(pos > 6) {
112                 pos -= 6;
113                 r++;
114             }
115             c += pos;
116             va.push_back(pii(r, c));
117         }
118     }
119     sort(va.begin(), va.end());
120     for(int i = 0; i < va.size(); i++) {
121         printf("%d %d\n", va[i].first, va[i].second);
122     }
123     return 0;
124 }

 

转载于:https://www.cnblogs.com/kirai/p/6165907.html

内容概要:《2024年印尼税收袖珍指南》由普华永道发布,涵盖了印尼税收体系的关键方面。主要内容包括企业所得税、个人所得税、预提税、国际税收协定、增值税、奢侈品销售税、碳税、关税与消费税、税收优惠、地方税、印花税、税务会计、税务稽查与评估、强制执行征税、税务纠纷与处理等。企业所得税税率一般为22%,特定条件可享受优惠。个人所得税采用超额累进税率,最高达35%。预提税涵盖种收入类型,如工资、利息、股息等。国际税收协定帮助避免双重征税,提供优惠税率。增值税标准税率为11%,部分商品和服务免征。税收优惠包括免税期、加计扣除等,尤其针对特定行业和地区。地方税种类繁,如土地与建筑物税、机动车税等。税务稽查与评估确保纳税人合规,税务纠纷可通过异议、申诉、诉讼等方式决。 适用人群:企业财务人员、税务顾问、跨国公司税务部门、个人纳税人等。 使用场景及目标:①帮助企业理和遵守印尼税法,优化税务规划;②协助个人纳税人正确申报各类税项;③为税务顾问提供最新税收政策信息,提升专业服务水平;④为跨国公司处理跨境税务问题提供指导。 阅读建议:此指南内容详尽,建议读者根据自身需求重点阅读相关章节,结合实际案例深入理各项规定,并关注最新政策动态,确保税务处理合法合规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值