题目链接:HDU-5136

网上的一篇题解非常好,所以就直接转载了。转自oilover的博客

代码:

 1 #include<cstring>
 2 #include<cstdio>
 3 #include<queue>
 4 using namespace std;
 5 typedef long long LL;
 6 const LL MAXN=100000;
 7 const LL MOD=1000000007;
 8
 9 LL dp[MAXN+10],sum[MAXN+10];
10 LL mod2,mod6;
11 LL extgcd(LL a,LL b,LL &x,LL &y)
12 {
13     LL d=a;
14     if(b!=0)
15     {
16         d=extgcd(b,a%b,y,x);
17         y-=(a/b)*x;
18     }
19     else { x=1; y=0; }
20     return d;
21 }
22 LL modInverse(LL a,LL m)
23 {
24     LL x,y;
25     extgcd(a,m,x,y);
26     return (m+x%m)%m;
27 }
28 void init()
29 {
30     mod2=modInverse(2,MOD);
31     mod6=modInverse(6,MOD);
32     memset(dp,0,sizeof(dp));
33     memset(sum,0,sizeof(sum));
34     dp[0]=dp[1]=1;
35     sum[0]=1;
36     sum[1]=2;
37     for(LL i=2;i<=MAXN;i++)
38     {
39         dp[i]=(dp[i-1]*sum[i-2] % MOD + dp[i-1]*(dp[i-1]+1) %MOD *mod2 % MOD)%MOD;
40         sum[i]=(sum[i-1]+dp[i])%MOD;
41     }
42 }
43 LL f(LL kk)
44 {
45     LL k=kk/2;
46     if(kk%2==0)
47         return dp[k]*(dp[k]+1)%MOD *mod2 % MOD;
48     LL ans=0;
49     ans =(ans + dp[k]*(dp[k]+1)%MOD *mod2 %MOD *sum[k-1] %MOD) %MOD;
50     ans =(ans + dp[k]) %MOD;
51     ans =(ans + dp[k]*((dp[k]-1+MOD)%MOD) %MOD) %MOD;
52     if(dp[k]>=3) ans =(ans + dp[k]*(dp[k]-1)%MOD*(dp[k]-2)%MOD*mod6%MOD)%MOD;
53     return ans;
54 }
55 int main()
56 {
57 #ifdef LOCAL
58     freopen("in.txt","r",stdin);
59     // freopen("out.txt","w",stdout);
60 #endif
61     init();
62     LL k;
63     while(scanf("%lld",&k)!=EOF && k)
64         printf("%lld\n",f(k));
65     return 0;
66 }

转载于:https://www.cnblogs.com/zarth/p/6617635.html

HDU 5136 Yue Fei's Battle相关推荐

  1. 2014_guangzhou_onsite

    5127 Dogs' Candies 链表,暴力 5128 The E-pang Palace 计算几何水题,求不相交两个矩形的最大面积 5129 Yong Zheng's Death 5130 Si ...

  2. 杂题记录及简要题解(一)

    一些前几天做过的还不错的但是不是太想专门花一整篇博客的篇幅去写的题就简要地记录在这里. 说是简要题解,其实写得还是挺详细的.之后的杂题记录可能就会写得简略一点. CF1060E Sergey and ...

  3. 都是大人物,看看你认识几个。

    突然找到一张老图,但是一直没能认识全部的人,下面名单是填的,不一定都正确. (想要原图留下邮件,我偶尔上来,如果看到会发给你的) =================================== ...

  4. 中国地名英译的几点注意事项

    地名是历史的产物,是国家领土主权的象征,是日常生活的向导,是社会交往的媒介.在信息化社会中,地名在国际政治.经济.外交.外贸.科技.文化交流.新闻出版以及社会生活方面都起着非常重要的作用. 用汉语拼音 ...

  5. 合工大计算机有哪些好的老师,合肥工业大学计算机与信息学院导师教师师资介绍简介-☆郑利平...

    合肥工业大学计算机与信息学院导师教师师资介绍简介-☆郑利平本站小编 Free考研考试/2021-04-24 个人信息 姓 名 郑利平 性 别 男 出生年月 1978 最终学位 博士 毕业学校 合肥工业 ...

  6. HDU - 5542 The Battle of Chibi(树状数组+DP)

    UVA - 12983 The Battle of Chibi(树状数组+DP) HDU - 5542 The Battle of Chibi(树状数组+DP) #include<cstdio& ...

  7. 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)

    题干: Dear contestant, now you are an excellent navy commander, who is responsible of a tough mission ...

  8. HDU ACM 3986 Harry Potter and the Final Battle(邻接表实现最短路dijkstra堆优化记录路径 + 枚举最短路上每条边)...

    http://acm.hdu.edu.cn/showproblem.php?pid=3986 题意: 从起点1 到 终点n,删除图中任意一条边求最短路的最坏情况. n  --表示有n个点 m --边数 ...

  9. HDU - 3061 Battle

    Battle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

最新文章

  1. java jdbc 表存在_使用JDBC查询是否存在某表或视图,按月动态生成表
  2. Jupyter官方神器:可视化 Debug 工具!
  3. MySQL在创建索引之前一定要想到的事情
  4. python小技巧及速度提高-python编码时有什么技巧可以提升速度?
  5. sql2005收集作业相关历史记录
  6. 1月6日 作业 穷举
  7. 在线mod计算机,MOD大师教程 手把手教你改造电脑机箱
  8. 基于机器视觉的洋葱霜霉病症状自动检测
  9. 数据科学包3-pandas快速入门2
  10. mysql插入记录到有约束的表_MySQL学习笔记-约束以及修改数据表
  11. Rabbit MQ 延迟插件rabbitmq_delayed_message_exchange的安装
  12. 使用html查看dicom,使用LEADTOOLS HTML5 Medical Viewer从任何地方查看DICOM图像教程
  13. 怎样使用css动画animation实现静态箭头图片上下摆动
  14. 赵伯平--警惕台湾的企业管理垃圾!
  15. 昵图网显示内部服务器错误,为什么博客老是显示网页错误?无法正常打开
  16. 计算机键盘按键失灵,电脑键盘失灵怎么办?4个小技巧解决电脑键盘失灵问题...
  17. 深入理解java虚拟机-java虚拟机的
  18. 两分钟了解数据封装和解封
  19. 最近很火的拼购,模式剖析—微三云贺心悦
  20. Godot Engine:Blender模型导入Godot自动生成的场景结构

热门文章

  1. Failed to load ApplicationContext
  2. Android开发笔记(九十四)图片的基本加工
  3. 综合网上解决mysql 5.7保存emoji 失败问题
  4. 重学前端学习笔记(十三)--浏览器工作解析(三)
  5. 内核管理 之 内核管理概述
  6. 分布式大数据多维数据分析(olap)引擎kylin[转]
  7. Spring Boot 在Gradle构建中使用Log4j日志
  8. I/O读写的另一种方式-NIO
  9. 进程和线程的区别【转】
  10. FCKeditor 自动取得焦点问题