COJ 1163: 寒衣调

2024-01-26 09:38
文章标签 coj 1163 寒衣

本文主要是介绍COJ 1163: 寒衣调,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description

男从戎,女守家。一夜,狼烟四起,男战死沙场。从此一道黄泉,两地离别。最后,女终于在等待中老去逝去。逝去的最后是换尽一生等到的相逢和团圆。
某日两人至奈何桥前,服下孟婆汤。
每滴孟婆汤都有强度不一的药效,设一碗孟婆汤共N滴(0<N<100000),其中第i滴(0≤i<N)用b[i]表示。
孟婆汤的药效与原料有关,设熬制前同样有N滴原料,第i滴原料用a[i]表示,0≤a[i]<2^32。
药效b[i]的计算方法为b[i]=(a[0]*a[1]*...*a[N-1]/a[i])%m(假设0/0=1),0<b[i]<2^32。

Input

每行开头给出原料数量N,取模数m,紧接着的一行按顺序给出原料a[i]。求出熬制所成孟婆汤的药效b[i],每次输完一碗孟婆汤的药效后以换行结尾。

Output

 求出熬制所成孟婆汤的药效b[i],每碗孟婆汤后以换行结尾。

Sample Input

5 11
2 7 5 3 9
3 7
9 8 5

Sample Output

10 6 4 3 1
5 3 2

这题写得非常有范是吧?问题主要涉及扩展欧几里得算法和乘法逆元的一些问题,下面直接上代码了:

#include<cstdio>
#define MAXN 100005
int a[MAXN], b[MAXN];
int N, m;
int main()
{while(scanf( "%d%d", &N, &m) == 2){for(int i = 0; i < N; i++) scanf("%d",&a[i]);b[N] = 1;for(int i = N - 1; i >= 0; i --)b[i] = (long long)b[i + 1] * a[i] % m;for(int i = 1; i < N; i ++)a[i] = (long long)a[i - 1] * a[i] % m;printf( "%lld", (long long)b[1]);for(int i = 1; i < N; i ++)printf(" %lld", (long long)a[i - 1] * b[ i + 1] % m);printf("\n");}return 0;
}


这篇关于COJ 1163: 寒衣调的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646384

相关文章

湘潭大学 1163 查询成绩

查询成绩 Accepted : 43 Submit : 246Time Limit : 3000 MS Memory Limit : 65536 KB 题目描述 波波同学是位大四的学生,同时也是一位考研er。为了考上北京邮电大学,他准备了很长时间。不久前,考研成绩终于公布了。波波登陆了成绩查询网站,发现自己密码竟然忘记了!但是幸好,他还记得其中的某些字母。请你判断,他记忆中的

从 poj 1163( The Triangle )教你彻底学会动态规划——入门篇

动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面

POJ 3176与1163同一道题,只是n不同而已

改下1163题代码中的数组中的n即可AC。 代码如下: #include <iostream> using namespace std; int a[350][351]; int main() {    int i,j,n;    cin >> n;    for(i=0;i<n;i++)      for(j=0;j<=i;j++)        cin >> a[i][j];    for

POJ 1163 最佳路径简单DP

思路:找出最佳路径,使其和值最大,逆向找出最大值,往前推比较简单。此题较为容易,动态规划的简单的题。 代码如下: #include <iostream>#include <map>#include <string>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>using namespa

COJ 1065括号匹配:栈的简单应用

[STL]【数据结构】括号匹配 Time Limit: 1000 ms     Memory Limit: 65536 KB Total Submit: 43     Accepted: 11 Description 数据有一行,由(,),[,],{,}六种字符构成。现在判断这行括号是否合法,合法条件如下: 1、每个左括号都有对应的右括号匹配,不得有多余的括号,比如这样正确:{

DFS专攻:HDU 1312与COJ 1061

COJ 1061简单的DFS…… #include<iostream>#include<cstdio>int n,m,sum,a[50][50]={0};char b[50][50];using namespace std;void dfs(int i,int j){sum++;a[i][j]=1;if(!a[i-1][j]&&i-1>=0&&b[i-1][j]==b[i][j])

COJ 1031木材加工(二分)

这题类似上周的周赛的第一题:HDU 1969,周赛A题也是用的二分,而且解法和这题极其相似,要是这题做过的话,周赛那题也许就有思路会做了……做题不是太少了!加油吧!!! #include <iostream>#include <map>#include <deque>#include <queue>#include <stack>#include <string>#include <

COJ 1383 STL中的set

[STL][007]字符串查找 Time Limit: 5000 ms     Memory Limit: 65536 KB Total Submit: 40     Accepted: 1 Description 现在给你一个字典,再给出几个字符串,让你查找,这些字符串是否在其中。 Input 第一行是两个整数M,N分别表示字典数和字符串数。 第2至第M+

COJ 1373 STL中的map每日四水

统计字母,水题…… #include <iostream>#include <algorithm>#include <map>#include <set>#include <deque>#include <queue>#include <stack>#include <string>#include <cstring>#include <cstdio>#include <cm

COJ 1285 STL中的map每日三水(无限个输入按哪个快捷键得输出)

[STL]首富 Time Limit: 3000 ms     Memory Limit: 65536 KB Total Submit: 129     Accepted: 39 Description 世界上有钱的人很多,但总会被评出一个世界首富。比如Bill Gates就多年被评为世界首富。 但是首富的钱是不固定的,有时候赚钱,有时候赔钱。 现在我们知道很多很多首富的