uva1563
https://vjudge.net/problem/UVA-1563
高斯消元解同余方程组 就是把原来的除法换成逆元,其他的都一样
#include<bits/stdc++.h>
using namespace std;
const int N = ;
int n, p;
int a[N][N];
char s[N];
int power(int x, int t)
{
int ret = ;
for(; t; t >>= , x = x * x % p) if(t & ) ret = ret * x % p;
// printf("ret=%d\n", ret);
return ret;
}
void build()
{
for(int i = ; i < n; ++i)
{
if(s[i + ] == '*') a[i][n] = ;
else a[i][n] = s[i + ] - 'a' + ;
}
for(int k = ; k < n; ++k)
for(int i = ; i < n; ++i)
a[k][i] = power(k + , i);
}
void gauss_jordan()
{
for(int now = ; now < n; ++now)
{
int x = now;
for(int i = now; i < n; ++i) if(abs(a[i][now]) > abs(a[x][now])) x = i;
for(int i = ; i <= n; ++i) swap(a[now][i], a[x][i]);
int inv = power(a[now][now], p - );
for(int i = now; i <= n; ++i) a[now][i] = a[now][i] * inv % p; // /a[now][now]
for(int i = ; i < n; ++i) if(i != now && a[i][now])
{
int t = a[i][now]; // a[i][j] = a[i][j] - t * a[now][j]
for(int j = ; j <= n; ++j) a[i][j] = ((a[i][j] % p - t * a[now][j] % p) % p + p)% p;
}
}
}
int main()
{
int T; scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
scanf("%d%s", &p, s + ); n = strlen(s + );
build();
gauss_jordan();
for(int i = ; i < n - ; ++i) printf("%d ", a[i][n]);
printf("%d\n", a[n - ][n]);
}
return ;
}
uva1563的更多相关文章
随机推荐
- Python之爬虫-酷6视频
Python之爬虫-酷6视频 #!/usr/bin/env python # -*- coding:utf-8 -*- import re import requests response = req ...
- 75-ADMI,Average Directional Movement Index,平均方向性运动指标.(2015.7.1)
ADMI,Average Directional Movement Index 平均方向性运动指标 Directional Movement Index,平均方向性运动指标.(2015.7.1)&qu ...
- ASP.net在IE6下乱码问题
今天处理程序的时候遇到一个坑爹的问题 该死的IE6传中文参数会出现 类似于◆的乱码 不过终于解决了 也许解决的方法有很多 和大家分享下我的解决方案 我用的javascript中 传的参数 < ...
- poj 3648 2-sat 输出任意一组解模板
转载地址:http://blog.csdn.net/qq172108805/article/details/7603351 /* 2-sat问题,题意:有对情侣结婚,请来n-1对夫妇,算上他们自己共n ...
- Codeforces704B. Ant Man
n<=5000个数轴上的点,有属性x,a,b,c,d,从i跳到j的代价如下: 问从s跳到t的最小代价. 方法?:先构造s->t链,然后依次插入其他点,每次选个最佳的位置.过了这题,正确性不 ...
- JSP内置对象和EL内置对象
JSP共有九大内置对象: (1) HttpSession类的session对象作用:主要用于来分别保存每个用户信息,与请求关联的会话: 会话状态维持是Web应用开发者必须面对的问题. ...
- [bzoj2179]FFT快速傅立叶_FFT
FFT快速傅立叶 bzoj-2179 题目大意:给出两个n位10进制整数x和y,你需要计算x*y. 注释:$1\le n\le 6\times 10^4$. 想法: $FFT$入门题. $FFT$实现 ...
- MongoDB学习day01--非关系型数据库
1.数据库和文件的主要区别: 1.1数据库有数据库表/行和列的概念,让我们存储操作数据方便 1.2数据库提供了方便的接口,让java.php..net.nodejs很方便的实现增删改查 2.NoSQL ...
- MySQL集群方案收集
MySQL集群是一个需要时间才能磨得出的话题,不可能一下子就全部能掌握.由于整个方案结合LVS+Keepalived这种,更加的复杂. 下面是一些主流方案的收集: MySQL双主 + Keepaliv ...
- css 實現微信聊天類似的氣泡
要實現這樣的效果 代碼如下: --------------------------------------- <style> .test{width:300px; padding:30px ...