[Noip模拟题]统计方案
2024-09-08 13:17:04
题目并不难,想一下就会了,我真的智商持续下降,取模情况下做除法我都没想到逆元。
总之想到逆元就好写了,还是\(meet\ in\ the\ middle\)裸题,数组开不下用\(hash/map\)存一下就好了.
提示:
1、特判\(c==1\)的情况
2、特判\(c>=p\)的情况
#include<cstdio>
#include<map>
int n,p,c,mod=1e9+7,a[40],ans;std::map<int,int>mp;
int mi(int a,int b){int ans=1;while(b){if(b&1)ans=(1ll*ans*a)%p;b>>=1;a=(1ll*a*a)%p;}return ans;}
void dfs(int x,int now){
if(x>n/2){mp[now]++;return ;}
dfs(x+1,1ll*now*a[x]%p),dfs(x+1,now);}
void dfs1(int x,int now){
if(x>n){int b=1ll*c*mi(now,p-2)%p;ans=(ans+mp[b])%mod;return ;}
dfs1(x+1,1ll*now*a[x]%p),dfs1(x+1,now);}
int main(){
scanf("%d%d%d",&n,&p,&c);for(int i=1;i<=n;i++)scanf("%d",&a[i]);
if(c>=p){printf("0\n");return 0;}
dfs(1,1),dfs1(n/2+1,1);printf("%d\n",c!=1?ans:ans-1);}
最新文章
- WCF学习之旅—第三个示例之三(二十九)
- ZIP等
- `cocos2dx 非完整` UI解析模块
- HDU 5744 Keep On Movin (贪心) 2016杭电多校联合第二场
- linux学习书籍推荐linux学习书籍推荐
- [状压dp]POJ1185 炮兵阵地
- 在Eclipse中怎样公布创建的JavaWebproject
- maven 使用axis2 client 需要导入的依赖
- Python-wxpy信息爬取发送至微信(小白级)
- 图->;最短路径->;单源最短路径(迪杰斯特拉算法Dijkstra)
- .net core WebApi Interlocked配合ManualResetEventSlim实现并发同步
- Linux下,用命令进行 日志分割、日志合并
- C#打印标签
- django 静态文件
- WorldWind源码剖析系列:地形瓦片类TerrainTile和地形瓦片服务类TerrainTileService
- [WPF打印]WPF 文档元素(Run TextBlock Paragraph)的文字对齐方式
- 决策树ID3算法实现
- JAVA中所有与集合有关的实现类都是这六个接口的实现类
- vs 添加第三方库lib的两种方法
- java文件系统中的的NIO与IO
热门文章
- java读流方式,下载网络上的图片
- 初学php html javascript后小总结
- Servlet学习(1)
- Codeforces Round #258 (Div. 2) D. Count Good Substrings —— 组合数学
- 用margin还是用padding?(3)—— 负margin实战
- 通过 :hover 伪元素控制其他元素
- ubuntu中使用gensim+word2vec[备忘]
- 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)
- 可移植的配置visual studio工程第三方库
- Java SE ,Java EE和Java ME 的区别