HDU6440 Dream
题目链接:https://vjudge.net/problem/HDU-6440
知识点: 构造、费马小定理
题目大意:
给定一个素数 $p$,要求定义一个加法运算表和一个乘法运算表,尺寸都为 $p \times p$,加法运算表上第 $i$ 行第 $j$ 列的元素代表 $(i-1)+(j-1)$ 的值,乘法运算表上第 $i$ 行第 $j$ 列的元素代表 $(i-1) \times (j-1)$ 的值。要求满足两个条件:
一、对于任意 $0 \le n,m < p$,$(n+m)^p = n^p + m^p$;
二、存在一个 $q(0<q<p)$,使得 ${q^{k}|0<k<p, k \in Z} = {k|0<k<p, k \in Z}$.
解题思路一:
加法运算表全部置为 $2$;
乘法运算表上,首先第一行和第一列都置为 $0$,对于其他部分,第二行全置 $2$,第三行全置 $3$,依次类推直到倒数第二行,最后一行全置 $1$.
代码一:
#include <bits/stdc++.h>
using namespace std; int main(){
int t;
scanf("%d",&t);
while(t--){
int p;
scanf("%d",&p);
for(int i=;i<p;i++){
printf("");
for(int j=;j<p;j++)
printf("");
puts("");
} printf("");
for(int i=;i<p;i++) printf("");
puts(""); for(int i=;i<p;i++){
printf("");
for(int j=;j<p;j++)
printf(" %d",i);
puts("");
} printf("");
for(int i=;i<p;i++) printf("");
puts("");
} return ;
}
解题思路二:
由费马小定理可知 $(n+m)^p \equiv (n+m) \equiv n^{p} + m ^{p} (mod p)$,故只需将加法运算表和乘法运算表都定义为在模 $p$ 意义下的运算表即可。
代码二:
#include <bits/stdc++.h>
using namespace std; int main(){
int t;
scanf("%d",&t);
while(t--){
int p;
scanf("%d",&p);
for(int i=;i<p;i++){
printf("%d",i);
for(int j=;j<p;j++)
printf(" %d",(i+j)%p);
puts("");
} for(int i=;i<p;i++){
printf("");
for(int j=;j<p;j++)
printf(" %d",i*j%p);
puts("");
}
} return ;
}
HDU6440 Dream的更多相关文章
- hdu6440 Dream 2018CCPC网络赛C 费马小定理+构造
题目传送门 题目大意: 给定一个素数p,让你重载加法运算和乘法运算,使(m+n)p=mp+np,并且 存在一个小于p的q,使集合{qk|0<k<p,k∈Z} 等于集合{k|0<k&l ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 Dream hdu6440 Dream 给出一个(流氓)构造法
http://acm.hdu.edu.cn/showproblem.php?pid=6440 题意:让你重新定义任意一对数的乘法和加法结果(输出乘法口诀表和加法口诀表),使得m^p+n^p==(m+n ...
- hdu6440 Dream(费马小定理)
保证 当 n^p=n(mod p) 是成立 只要保证n*m=n*m(mod p); #include<bits/stdc++.h> using namespace std; int ma ...
- HDU6440 Dream 2018CCPC网络赛-费马小定理
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 原题目描述在最下面. 给定一个素数p ...
- HDU6440 Dream(费马小定理+构造) -2018CCPC网络赛1003
题意: 给定素数p,定义p内封闭的加法和乘法,使得$(m+n)^p=m^p+n^p$ 思路: 由费马小定理,p是素数,$a^{p-1}\equiv 1(mod\;p)$ 所以$(m+n)^{p}\eq ...
- PK淘宝BUY+,京东推出AR购物应用JD Dream
今年双十一淘宝推出了虚拟现实VR购物"BUY+",用户可以在虚拟环境中选购商品.那作为竞争对手的京东将使出什么绝招呢?在近日上海举办的谷歌开发者大会上得到了答案.会上京东推 ...
- [poj2411] Mondriaan's Dream (状压DP)
状压DP Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One nigh ...
- Dream It Possible
反复听着Dream It Possible,想起自己的华为岁月,百感交集!
- POJ 题目2411 Mondriaan's Dream(状压DP)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 13519 Accepted: 787 ...
随机推荐
- 【JAVA基础】06 面向对象
1. 面向对象思想概述 面向过程思想概述 第一步 第二步 面向对象思想概述 找对象(第一步,第二步) 举例 买煎饼果子 洗衣服 面向对象思想特点 是一种更符合我们思想习惯的思想 可以将复杂的事情简单化 ...
- Linux系统应用管理:增加普通用户(密码管理等)
1. 查看当前Linux系统的版本.内核等信息 [root@oldboy ~]# cat /etc/redhat-release CentOS release 6.7 (Final) . # 系统版本 ...
- 【Linux常见命令】alias命令
alias命令用于查看和设置指令的别名. 用户可利用alias,自定指令的别名. 若仅输入alias,则可列出目前所有的别名设置. alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名, ...
- 更新mac系统到10.15后,virtual box虚拟机无法打开
更新mac系统到10.15后,virtual box虚拟机无法打开: 尝试解决方案1:下载最新版的virtual box重新安装后,启动成功. 虽然很乌龙,但是下次再也不随便升级系统了,太坑爹了
- Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件
前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...
- Pointers and Memory
Stanford CS Education Library #102 一.Basic Pointers 指针主要有两个用途:使不同的代码段共享信息.方便链表(树)的处理. 指针示意图: derefer ...
- 51 NOD 1049 最大子段和 动态规划 模板 板子 DP
N个整数组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续子段和的最大值.当所给的整数均为负数时和为0. 例如:-2,11,-4,13,-5,- ...
- RF(作用与目的)
1.robotframework 自动化原理 通过 ride 工具编写脚本,加载指定的 UI 测试库,再通过 pybot 程序去运行指定脚本,调用浏览器驱动,打开浏览器,操作浏览器页面元素,达到模拟用 ...
- Kafka平滑滚动升级2.4.0指南
今天测试了下kafka从2.0.0滚动升级至2.4.0,下面做一下记录.这个链接是Kafka官网对升级2.4.0的指南,可以参考 http://kafka.apache.org/24/documen ...
- celery的定时任务
定时任务 Celery 中启动定时任务有两种方式,(1)在配置文件中指定:(2)在程序中指定. # cele.py import celery app = celery.Celery('cele', ...