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的更多相关文章

随机推荐

  1. Python之爬虫-酷6视频

    Python之爬虫-酷6视频 #!/usr/bin/env python # -*- coding:utf-8 -*- import re import requests response = req ...

  2. 75-ADMI,Average Directional Movement Index,平均方向性运动指标.(2015.7.1)

    ADMI,Average Directional Movement Index 平均方向性运动指标 Directional Movement Index,平均方向性运动指标.(2015.7.1)&qu ...

  3. ASP.net在IE6下乱码问题

    今天处理程序的时候遇到一个坑爹的问题 该死的IE6传中文参数会出现 类似于◆的乱码 不过终于解决了  也许解决的方法有很多  和大家分享下我的解决方案 我用的javascript中 传的参数 < ...

  4. poj 3648 2-sat 输出任意一组解模板

    转载地址:http://blog.csdn.net/qq172108805/article/details/7603351 /* 2-sat问题,题意:有对情侣结婚,请来n-1对夫妇,算上他们自己共n ...

  5. Codeforces704B. Ant Man

    n<=5000个数轴上的点,有属性x,a,b,c,d,从i跳到j的代价如下: 问从s跳到t的最小代价. 方法?:先构造s->t链,然后依次插入其他点,每次选个最佳的位置.过了这题,正确性不 ...

  6. JSP内置对象和EL内置对象

    JSP共有九大内置对象: (1) HttpSession类的session对象作用:主要用于来分别保存每个用户信息,与请求关联的会话:         会话状态维持是Web应用开发者必须面对的问题. ...

  7. [bzoj2179]FFT快速傅立叶_FFT

    FFT快速傅立叶 bzoj-2179 题目大意:给出两个n位10进制整数x和y,你需要计算x*y. 注释:$1\le n\le 6\times 10^4$. 想法: $FFT$入门题. $FFT$实现 ...

  8. MongoDB学习day01--非关系型数据库

    1.数据库和文件的主要区别: 1.1数据库有数据库表/行和列的概念,让我们存储操作数据方便 1.2数据库提供了方便的接口,让java.php..net.nodejs很方便的实现增删改查 2.NoSQL ...

  9. MySQL集群方案收集

    MySQL集群是一个需要时间才能磨得出的话题,不可能一下子就全部能掌握.由于整个方案结合LVS+Keepalived这种,更加的复杂. 下面是一些主流方案的收集: MySQL双主 + Keepaliv ...

  10. css 實現微信聊天類似的氣泡

    要實現這樣的效果 代碼如下: --------------------------------------- <style> .test{width:300px; padding:30px ...