AtCoder Beginner Contest 137 F

数论鬼题(虽然不算特别数论)

希望你在浏览这篇题解前已经知道了费马小定理

利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\)

\[x=i,g(x)=0
\]

\[x\ne i ,g(x)=1
\]

则我们可以构造

\[f(x)=\sum^{i=0}_{P-1}(-a_i*(x-i)^{P-1}+a_i)
\]

对于第\(i\)条式子当且仅当\(a_i=1 \ and \ x=i\)时取到\(1\)

代码写的比较奇怪


const int N=3100; int P,a[N]; int po[N]={1},Inv[N]={1,1};
int b[N];
int C(int n,int m){
if(n<0||m<0||n<m) return 0;
return po[n]*Inv[m]%P*Inv[n-m]%P;
} int fl=0;
int main(){
P=rd();
rep(i,1,P+1) po[i]=po[i-1]*i%P;
rep(i,2,P-1) Inv[i]=(P-P/i)*Inv[P%i]%P;
rep(i,2,P+1) Inv[i]=Inv[i]*Inv[i-1]%P;
rep(i,0,P-1) {
if(rd()) {
fl=1;
int t=1;
drep(j,P-1,0) b[j]+=C(P-1,j)%P*t%P,t=t*(P-i)%P;
} else b[0]++;
}
rep(i,0,P-1) {
int x=(P-b[i])%P;
x=(x%P+P)%P;
printf("%d%c",x,(i==P-1)?'\n':' ');
}
}

AtCoder Beginner Contest 137 F的更多相关文章

  1. AtCoder Beginner Contest 261 F // 树状数组

    题目链接:F - Sorting Color Balls (atcoder.jp) 题意: 有n个球,球有颜色和数字.对相邻的两球进行交换时,若颜色不同,需要花费1的代价.求将球排成数字不降的顺序,所 ...

  2. AtCoder Beginner Contest 260 F - Find 4-cycle

    题目传送门:F - Find 4-cycle (atcoder.jp) 题意: 给定一个无向图,其包含了S.T两个独立点集(即S.T内部间的任意两点之间不存在边),再给出图中的M条边(S中的点与T中的 ...

  3. AtCoder Beginner Contest 253 F - Operations on a Matrix // 树状数组

    题目传送门:F - Operations on a Matrix (atcoder.jp) 题意: 给一个N*M大小的零矩阵,以及Q次操作.操作1(l,r,x):对于 [l,r] 区间内的每列都加上x ...

  4. AtCoder Beginner Contest 249 F - Ignore Operations // 贪心 + 大根堆

    传送门:F - Keep Connect (atcoder.jp) 题意: 给定长度为N的操作(ti,yi). 给定初值为0的x,对其进行操作:当t为1时,将x替换为y:当t为2时,将x加上y. 最多 ...

  5. AtCoder Beginner Contest 247 F - Cards // dp + 并查集

    原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1 ...

  6. AtCoder Beginner Contest 133 F Colorful Tree

    Colorful Tree 思路: 如果强制在线的化可以用树链剖分. 但这道题不强制在线,那么就可以将询问进行差分,最后dfs时再计算每个答案的修改值, 只要维护两个数组就可以了,分别表示根节点到当前 ...

  7. AtCoder Beginner Contest 137 D题【贪心】

    [题意]一共有N个任务和M天,一个人一天只能做一个任务,做完任务之后可以在这一天之后的(Ai-1)天拿到Bi的工资,问M天内最多可以拿到多少工资. 链接:https://atcoder.jp/cont ...

  8. AtCoder Beginner Contest 137

    前言 又是卡在了T4 , 总分 100 + 200 + 300 = 600pts rank 2449.以后还是要多积累比赛经验. A 输出a+b,a-b,a*b中最大的数,还要多简单?不挂代码了 B ...

  9. AtCoder Beginner Contest 171-175 F

    171 F - Strivore 直接把初始字符当成隔板,统计的方案数会有重复 为了避免重复情况,规定隔板字母尽可能最后出现,即在隔板字母后面不能插入含隔板字母的字符串 所以在隔板字母后插入的字符只有 ...

随机推荐

  1. 虚拟化x86的三种途径

    虚拟化x86的三种途径 作者:缪天翔链接:https://www.zhihu.com/question/20145026/answer/34527331 x86上的全系统虚拟化有三种主要的途径: 二进 ...

  2. node_exporte新版本指标名称变化说明

    changelog如下 Breaking changes This release contains major breaking changes to metric names. Many metr ...

  3. 2019 找钢网java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.找钢网等公司offer,岗位是Java后端开发,因为发展原因最终选择去了找钢网,入职一年时间了,也成为了面试官 ...

  4. git 从远程克隆代码并实现分支开发,合并分支,上传本地代码到远程

    首先确认你已经安装了git 1.克隆远程代码到本地的操作 git clone 地址   打开git操作命令行 鼠标右键点击        复制需要克隆的项目的地址类似下面的ssh     输入命令进行 ...

  5. C# 7可以在.NET Framework 4上运行吗?

    https://stackoverflow.com/questions/42482520/does-c-sharp-7-0-work-for-net-4-5 To sum up: All of C# ...

  6. mysql修改密码策略

      版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Hello_World_QWP/arti ...

  7. MySQL添加用户、为用户分配权限

    登录MySQL登录本地用户 mysql -u root -p登录外网用户(需要注意服务器可能只允许本地登录,需要修改响应的配置文件) mysql -u zhrt -h 10.64.6.4 -p添加用户 ...

  8. Prometheus学习笔记(1)Prometheus架构简介

    Prometheus简介和架构 Prometheus 是由 SoundCloud 开源监控告警解决方案.架构图如下: 如上图,Prometheus主要由以下部分组成: Prometheus Serve ...

  9. HAProxy的基础配置详解

      HAProxy是高性能的企业级负载均衡调度器,同时支持四层TCP和七层HTTP协议的负载均衡调度,以及支持基于cookie的持久性,支持正则表达式及web状态统计.自动故障切换等优点,因此广泛被应 ...

  10. 利用Metasploit攻击Android

    首先我在Kali下生成一个Android的应用程序,即apk格式的文件,用到的命令是: msfvenom -p android/meterpreter/reverse_tcp LHOST=本地ip L ...