POJ 2065 SETI [高斯消元同余]
题意自己看,反正是裸题...
普通高斯消元全换成模意义下行了
模模模!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
typedef int Matrix[N][N];
int n,P;
Matrix a;
char s[N];
inline int Pow(int a,int b){
int re=;
for(;b;b>>=,a=a*a%P)
if(b&) re=re*a%P;
return re;
}
inline int Inv(int a){return Pow(a,P-);}
void ini(){memset(a,,sizeof(a));}
void Gauss(){
for(int i=;i<=n;i++){
int j=i;
while(j<=n&&!a[j][i]) j++;
if(j!=i) for(int k=;k<=n+;k++) swap(a[i][k],a[j][k]);
int inv=Inv(a[i][i]);
for(int j=i+;j<=n;j++){
int t=a[j][i]*inv%P;
for(int k=i;k<=n+;k++) a[j][k]=(a[j][k]-t*a[i][k]%P+P)%P;
}
}
for(int i=n;i>=;i--){
for(int j=n;j>i;j--) a[i][n+]=(a[i][n+]-a[j][n+]*a[i][j]%P+P)%P;
a[i][n+]=a[i][n+]*Inv(a[i][i])%P;
}
}
void buildEquation(){
ini();
for(int i=;i<=n;i++){
for(int j=;j<=n;j++) a[i][j]=Pow(i,j-);//,printf("%d%c",a[i][j],j==n?'\n':' ');
a[i][n+]=s[i]=='*'?:s[i]-'a'+;
}
}
int main(){
freopen("in","r",stdin);
int T=read();
while(T--){
P=read();
scanf("%s",s+);
n=strlen(s+);
buildEquation();
Gauss();
for(int i=;i<=n;i++) printf("%d ",a[i][n+]);
puts("");
}
}
POJ 2065 SETI [高斯消元同余]的更多相关文章
- poj 2065 SETI 高斯消元
看题就知道要使用高斯消元求解! 代码如下: #include<iostream> #include<algorithm> #include<iomanip> #in ...
- POJ.2065.SETI(高斯消元 模线性方程组)
题目链接 \(Description\) 求\(A_0,A_1,A_2,\cdots,A_{n-1}\),满足 \[A_0*1^0+A_1*1^1+\ldots+A_{n-1}*1^{n-1}\equ ...
- POJ 2065 SETI 高斯消元解线性同余方程
题意: 给出mod的大小,以及一个不大于70长度的字符串.每个字符代表一个数字,且为矩阵的增广列.系数矩阵如下 1^0 * a0 + 1^1 * a1 + ... + 1^(n-1) * an-1 = ...
- POJ 2065 SETI (高斯消元 取模)
题目链接 题意: 输入一个素数p和一个字符串s(只包含小写字母和‘*’),字符串中每个字符对应一个数字,'*'对应0,‘a’对应1,‘b’对应2.... 例如str[] = "abc&quo ...
- B - SETI POJ - 2065 (高斯消元)
题目链接:https://vjudge.net/contest/276374#problem/B 题目大意: 输入一个素数p和一个字符串s(只包含小写字母和‘*’),字符串中每个字符对应一个数字,'* ...
- POJ SETI 高斯消元 + 费马小定理
http://poj.org/problem?id=2065 题目是要求 如果str[i] = '*'那就是等于0 求这n条方程在%p下的解. 我看了网上的题解说是高斯消元 + 扩展欧几里德. 然后我 ...
- POJ 2947-Widget Factory(高斯消元解同余方程式)
题目地址:id=2947">POJ 2947 题意:N种物品.M条记录,接写来M行,每行有K.Start,End,表述从星期Start到星期End,做了K件物品.接下来的K个数为物品的 ...
- HDU 3571 N-dimensional Sphere( 高斯消元+ 同余 )
N-dimensional Sphere Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- POJ2065 SETI 高斯消元
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ2065 题意概括 多组数据,首先输入一个T表示数据组数,然后,每次输入一个质数,表示模数,然后,给出一 ...
随机推荐
- 基于Echarts4.0实现旭日图
昨天Echarts4.0正式发布,随着4.0而来的是一系列的更新,挑几个主要的简单说明: 1.展示方面通过增量渲染技术(4.0+)ECharts 能够展现千万级的数据量 2.针对移动端优化,移动端小屏 ...
- nth-child()选择器小结
之前也用到过nth-child,只是当时理解的不够透彻.今天回过头去看这个知识点时,发现了一个易错点. 浏览器支持情况: 所有主流浏览器都支持nth-child()选择器,除了IE8及更早的版本. 下 ...
- 【蓝桥杯单片机02】LED的基本控制
[蓝桥杯单片机02]LED的基本控制 广东职业技术学院 欧浩源 在CT107D单片机综合训练平台实现LED的基本控制和其他单片机开发平台不一样,不单单是控制几个LED实现跑马灯这么简单.因为在这个平 ...
- 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval
//获取日期 todaysDate=[NSDate date]; //显示日期和时间 dateFormat = [[NSDateFormatter alloc] init];//NSDate没有自己的 ...
- hive下UDF函数的使用
1.编写函数 [java] view plaincopyprint?package com.example.hive.udf; import org.apache.hadoop.hive.ql. ...
- IIS命令行管理工具使用
AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下 一条命令批量添加应用程序 c:\Windows\System32\inetsrv>for /d ...
- CentOS 7安装
使用U盘安装 1.CentOS 7系统镜像制作U盘启动盘 1).下载CentOS 7系统镜像 下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/ ...
- HTTP常用状代码
2XX 成功 204 Not Content 请求处理成功,但没有资源可以返回. 1 put请求:该资源已存在于服务器上 2 delete请求:该资源已从服务器上删除 200 OK 请求正常处理 20 ...
- python_如何统计序列中元素
问题1: 随机数列[12,5,8,7,8,9,4,8,5,...] 中出现次数最高的3个元素,他们出现的次数 问题2: 对某英文文章的单词,进行词频统计,找出出现次数最搞得10个单词,他们出现的次数是 ...
- Python---socketserver
为方便以后学习和查询,特从socketserver架构.源码分析和案例三方面进行总结 1. Python之socketserver架构 2. Python之socketserver源码分析(一) 3. ...