博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4651 Partition && hdu 4658 Integer Partition——拆分数与五边形定理
阅读量:5957 次
发布时间:2019-06-19

本文共 2057 字,大约阅读时间需要 6 分钟。

题目:

参考:

   

好像这样复杂度就是 \( O(n\sqrt{n} \) 的了。

#include
#include
#include
using namespace std;int rdn(){ int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){
if(ch=='-')fx=0;ch=getchar();} while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar(); return fx?ret:-ret;}const int N=1e5+5,mod=1e9+7;int upt(int x){
if(x>=mod)x-=mod;if(x<0)x+=mod;return x;}int n,a[N];void init(){ int n=1e5; a[0]=1; for(int i=1;i<=n;i++) for(int j=1;;j++) { int k0=j*(3*j-1)>>1, k1=j*(3*j+1)>>1; int fx=(j&1)?1:-1; if(k0>i&&k1>i)break; if(k0<=i)a[i]=upt(a[i]+fx*a[i-k0]); if(k1<=i)a[i]=upt(a[i]+fx*a[i-k1]); }}int main(){ int T=rdn(); init(); while(T--) n=rdn(),printf("%d\n",a[n]); return 0;}
View Code

 关于 hdu 4658 :

大概就是原来是 \( P(x)*\phi(x) = 1 \) ,现在是 \( P_k(x) = \frac{\phi(x^k)}{\phi(x)} = \phi(x^k)*P(x) \)

每次想求 \( P_k(x) \) 的第 n 项系数,所以先把 \( P(x) \) 预处理出来,然后每次暴力算 \( P_k(x) \) 的第 n 项,就是 \( O(n\sqrt{n}) \) 了。

#include
#include
#include
using namespace std;int rdn(){ int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){
if(ch=='-')fx=0;ch=getchar();} while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar(); return fx?ret:-ret;}const int N=1e5+5,mod=1e9+7;int upt(int x){
if(x>=mod)x-=mod;if(x<0)x+=mod;return x;}int p[N];void init(){ int n=1e5; p[0]=1; for(int i=1;i<=n;i++) for(int j=1;;j++) { int k0=j*(3*j-1)>>1, k1=j*(3*j+1)>>1; int fx=(j&1)?1:-1; if(k0>i&&k1>i)break; if(k0<=i)p[i]=upt(p[i]+fx*p[i-k0]); if(k1<=i)p[i]=upt(p[i]+fx*p[i-k1]); }}int solve(){ int n=rdn(),k=rdn(),ans=p[n]; for(int i=1;;i++) { int k0=k*i*(3*i-1)>>1, k1=k*i*(3*i+1)>>1; int fx=(i&1)?-1:1; if(k0>n&&k1>n)break; if(k0<=n)ans=upt(ans+fx*p[n-k0]); if(k1<=n)ans=upt(ans+fx*p[n-k1]); } printf("%d\n",ans);}int main(){ init(); int T=rdn(); while(T--)solve(); return 0;}
View Code

 

转载于:https://www.cnblogs.com/Narh/p/10409257.html

你可能感兴趣的文章
"Hotpatch"潜在的安全风险
查看>>
封装Date工具类
查看>>
在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
查看>>
Babel学习系列3-babel-preset,babel-plugin
查看>>
焦虑、不安
查看>>
canvas绘图按照contain或者cover方式适配,并居中显示
查看>>
两款爱不释手的markdown编辑工具
查看>>
SpringBoot 实战 (五) | 集成 Swagger2 构建强大的 RESTful API 文档
查看>>
Nginx 通过 Lua + Redis 实现动态封禁 IP
查看>>
Element-UI中Upload上传文件前端缓存处理
查看>>
Terraform入门 - 4. destroy 基础设施
查看>>
LeetCode20.有效的括号 JavaScript
查看>>
为什么编程语言的都要定义数据类型
查看>>
深度学习在美团配送ETA预估中的探索与实践
查看>>
Scrapy基本用法
查看>>
后端_服务器
查看>>
手挽手带你学React:三档 React-router4.x的使用
查看>>
vue2.X 解决同一路由跳转只有参数变化的情况下,组件不刷新的问题
查看>>
面试官问我:什么是JavaScript闭包,我该如何回答
查看>>
chrome浏览器下audio自动播放的hack
查看>>