【POJ】2065 SETI

题意:直接拿样例,37 abc。

a~z表示1~26,*表示0。

x0*1^0+x1*1^1+x2*1^2=1(mod 37)

x0*2^0+x1*2^1+x2*2^2=2(mod 37)

x0*3^0+x1*3^1+x2*3^2=3(mod 37)

高斯消元,除法x等于乘以x对p的逆元。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define MAXN 110
 5 using namespace std;
 6 char str[MAXN];
 7 int n, p;
 8 int g[MAXN][MAXN], x[MAXN];
 9 int GET(char ch) {
10     if (ch == '*')
11         return 0;
12     return ch - 'a' + 1;
13 }
14 int PowMod(int a, int b, int c) {
15     int res;
16     for (res = 1; b; b >>= 1) {
17         if (b & 1) {
18             res *= a;
19             res %= c;
20         }
21         a *= a;
22         a %= c;
23     }
24     return res;
25 }
26 int EXTGCD(int a, int b, int &x, int &y) {
27     int t, d;
28     if (b == 0) {
29         x = 1;
30         y = 0;
31         return a;
32     }
33     d = EXTGCD(b, a % b, x, y);
34     t = x;
35     x = y;
36     y = t - a / b * y;
37     return d;
38 }
39 int Invmod(int a, int n) {
40     int x, y;
41     EXTGCD(a, n, x, y);
42     return (x % n + n) % n;
43 }
44 void Gauss() {
45     int i, j, k, tmp;
46     for (i = 0; i < n; i++) {
47         for (j = i; j < n; j++) {
48             if (g[j][i])
49                 break;
50         }
51         if (j != i) {
52             for (k = i; k <= n; k++)
53                 swap(g[j][k], g[i][k]);
54         }
55         for (j = i + 1; j < n; j++) {
56             if (g[j][i]) {
57                 tmp = (g[j][i] * Invmod(g[i][i], p)) % p;
58                 for (k = i; k <= n; k++) {
59                     g[j][k] -= tmp * g[i][k];
60                     g[j][k] = (g[j][k] % p + p) % p;
61                 }
62             }
63         }
64     }
65     for (i = n - 1; i >= 0; i--) {
66         tmp = 0;
67         for (j = i + 1; j < n; j++) {
68             tmp += x[j] * g[i][j];
69             tmp = (tmp % p + p) % p;
70         }
71         tmp = g[i][n] - tmp;
72         tmp = (tmp % p + p) % p;
73         x[i] = tmp * Invmod(g[i][i], p) % p;
74     }
75 }
76 int main() {
77     int c;
78     int i, j;
79     scanf("%d", &c);
80     while (c--) {
81         scanf("%d %s", &p, str);
82         n = strlen(str);
83         for (i = 0; i < n; i++) {
84             g[i][n] = GET(str[i]);
85             for (j = 0; j < n; j++)
86                 g[i][j] = PowMod(i + 1, j, p);
87         }
88         Gauss();
89         printf("%d", x[0]);
90         for (i = 1; i < n; i++)
91             printf(" %d", x[i]);
92         putchar('\n');
93     }
94     return 0;
95 }

转载于:https://www.cnblogs.com/DrunBee/archive/2012/09/04/2670210.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几个国外开源CMS系统比较

CMS是Content Management System的缩写&#xff0c;意为"内容管理系统"。上一下度娘或者放一下Google&#xff0c;全球的CMS系统&#xff0c;不下千个&#xff0c;开源的不下百个&#xff0c;如果只是普通用户&#xff0c;很难有时间和精力去比较那么多的系统优劣。不…

用Python自动生成NBA巨星生涯数据曲线

1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号)&#xff0c;大家的反响很好&#xff0c;我也感到很欣慰。有问我怎么做的&#xff0c;如何学 python 的&#xff0c;也有提建议说集成到 web 里面的。 其实最开始我也是考虑到集成到 web 里面…

ldr加载指令,ldr伪指令

转载于ARM中LDR伪指令与LDR加载指令 - Leo Chin - 博客园 一、ldr作为加载指令 &#xff08;1&#xff09;格式为&#xff1a;LDR{条件} 目的寄存器&#xff0c;<存储器地址> &#xff08;2&#xff09;LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。 …

桌面秀

介绍一款桌面秀给大家——Rainmeter。个人觉得Rainmeter最大的优点就是能自己编写插件&#xff0c;当然&#xff0c;你也可以去一下网站搜索插件下载。 国内&#xff1a; http://bbs.rainmeter.cn/ 国外&#xff1a; http://rainmeter.net/转载于:https://www.cnblogs.com/HTWo…

javascript函数,值得参考!

2019独角兽企业重金招聘Python工程师标准>>> javascript函数一共可分为五类&#xff1a;   常规函数   数组函数   日期函数   数学函数   字符串函数   1.常规函数   javascript常规函数包括以下9个函数&#xff1a;   (1)alert函数&#xff1a;显…

Index

★【简书】 Nordic文集 Python FreeRTOS 转载于:https://www.cnblogs.com/shaoyang-v/p/11265393.html

时钟系统——S5PV210的时钟系统的理论及操作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考内容 s5pv210——初始化时钟 - biaohc - 博客园 用户手册 一、SoC时钟系统 1、时钟的含义与作用 时钟是同步工作系统的同步节拍。 SoC内部有很多器件&#xff0c;比如CPU、串口、DRAM控制器、…

Oracle 协议适配器错误

1.首先确认你的 OracleDBConsoleORACLE&#xff0c;OracleOraDb11g_home1TNSListener&#xff0c;OracleServiceORACLE 这三个服务是否已经正常的开启。 2. 确认你的listener 的端口是否被占用&#xff0c; 在命令行执行&#xff1a;netstat -aon|findstr "1521" &am…

php变量作用域(花括号、global、闭包)

变量的作用域是变量的一个作用范围&#xff0c;在这个范围内变量为可见的&#xff0c;即可以访问该变量的代码区域&#xff0c; 相反&#xff0c;如果不在这个范围内&#xff0c;变量是不可见的&#xff0c;无法被调用。 &#xff08;全局变量可以将作用范围看作为整个程序&…

C# 文件流相关操作

二进制转换成图片: MemoryStream ms new MemoryStream(bytes); ms.Position 0; Image img Image.FromStream(ms); ms.Close(); this.pictureBox1.Image C#中byte[]与string的转换代码: System.Text.UnicodeEncoding converter new System.Text.UnicodeEncoding();byte[] in…

递归求链表的长度

时间复杂度&#xff1a;每个节点各访问一次&#xff0c;时间复杂度为O(n)。 程序代码&#xff1a; int length(LinkList llist) { if(llist NULL) return 0; return 1length(llist->link); } 转载于:https://www.cnblogs.com/maomaohhmm/archive/2012/09/09/2677889.html

串口通信——串口通信的基础概念

以下内容源于朱友鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 同步通信与异步通信区别_wind19的博客-CSDN博客 SPI、I2C、UART&#xff08;即串口&#xff09;三种串行总线详解_天糊土的博客-CSDN博客_串口总线 一、电子通信相关的概念 1、同步通信和…

MS CRM 2011 RC中的新特性(9)—全新的工作流 脚本设计模式

MS Dynamics CRM 2011中&#xff0c;在流程处理方面&#xff0c;除了以往版本中具有的工作流之外&#xff0c;又加入了新的内容——脚本Dialog。脚本Dialog&#xff0c;是同步的、需要用户输入内容的流程。当启动了脚本后&#xff0c;系统会弹出向导风格的对话框&#xff0c;用…

前端开发中那些不招人“待见”的功能

互联网上优秀的Web开发案例不胜枚举&#xff0c;但也有一些开发者费劲心血开发出的网站仅因为某些功能就遭到吐槽的也屡屡不鲜。这不&#xff0c;原文作者Scott Hanselman发表的这篇文章《Stop Doing Internet Wrong 》就例举了互联网上那些不招人“待见”的功能。当然&#xf…

串口通信——S5PV210串口通信接口详解

以下内容源于 朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 s5pv210——串口通信 - biaohc - 博客园 一、S5PV210的串口控制器 S5PV210的串口控制器的相关内容&#xff0c;在用户手册的section8.1章节。 &#xff08;1&#xff09;串口控制器包含…

网上看到的一个百度实习生笔试题

编写函数&#xff0c;统计在某段英文文本完整句子的数目&#xff0c;文本只包括大小写英文字母&#xff0c;空格&#xff0c;点号&#xff08;.&#xff09;&#xff0c;逗号(,)&#xff0c;完整句子必须包含至少一个字母并以一个点号结束。 实现了一下&#xff0c;不知道可有漏…

javascript学习(11)——[设计模式]工厂模式

其实学过java的人基本都知道&#xff0c;工厂模式&#xff0c;我们是基本每天都在用&#xff0c;只不过工厂模式也分为几种情况&#xff1a;简单工厂&#xff0c;抽象工厂和智能工厂。 简单工厂其实&#xff0c;大家时时刻刻都在用&#xff0c;个人理解&#xff0c;当我们在一个…

串口通信——S5PV210串口通信的简单案例

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客&#xff1a;s5pv210——串口通信 - biaohc - 博客园 一、代码与测试 1、代码文件 完整的案例文件见链接。 &#xff08;1&#xff09;start.S文件 /* * 演示串口通信 */#define WTCON …

iOS学习系列 - 扩展机制category与associative

category与associative作为objective-c的扩展机制的两个特性&#xff0c;category即类型&#xff0c;可以通过它来扩展方法&#xff1b;associative&#xff0c;可以通过它来扩展属性&#xff1b;在iOS开发中&#xff0c;可能category比较常见&#xff0c;相对的associative&am…

Spring Boot JWT 快速入门

本章节讨论 jwt 在 spring boot 中的应用。意在快速入门 jwt。 java jdk1.8maven 3.2spring boot 2.0JSON Web Token&#xff08;JWT&#xff09; 他是一个用于 Web 身份验证的令牌。 1 JWT 概述 1.1 什么是JWT 直观的理解 JWT 就是一串字符串&#xff0c;如下&#xff08;来自…