【bzoj2751】[HAOI2012]容易题(easy)

先考虑k=0的情况

那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1]

那么合并得

然后同理答案就是

k很小 而且顺序可以随便交换

排序暴力减去就好了

 1 /* http://www.cnblogs.com/karl07/ */
 2 #include <cstdlib>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <cmath>
 6 #include <algorithm>
 7 using namespace std;
 8
 9 const int P=1000000007;
10 int n,m,k,cnt=0,sum,ans=1;
11 struct data{int x,y;}d[100005];
12 int Q_pow(int x,int y){
13     int ans=1;
14     while (y){
15         if (y&1) ans=1ll*ans*x%P;
16         x=1ll*x*x%P;
17         y=(y>>1);
18     }
19     return ans;
20 }
21 bool oper(data a,data b) {return ((a.x<b.x) || (a.x==b.x && a.y<b.y));}
22
23 int main(){
24     scanf("%d%d%d",&n,&m,&k);
25     sum=1ll*n*(n+1)/2%P;
26     for (int i=1;i<=k;i++){
27         scanf("%d%d",&d[i].x,&d[i].y);
28     }
29     sort(d+1,d+k+1,oper);
30     d[k+1].x=-1;
31     d[k+1].y=0;
32     for (int i=2,s=1ll*(sum-d[1].y+P)%P;i<=k+1;i++){
33         if (d[i].x!=d[i-1].x) {ans=1ll*ans*s%P; s=sum; cnt++; }
34         if (d[i].y!=d[i-1].y || d[i].x!=d[i-1].x) s=(s-d[i].y+P)%P;
35     }
36     printf("%lld\n",1ll*ans*Q_pow(sum,m-cnt)%P);
37     return 0;
38 }

View Code

这么水的题想了半天。。没有调整负数WA了几发。。药丸。。

转载于:https://www.cnblogs.com/karl07/p/6596183.html

【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂相关推荐

  1. bzoj2751[HAOI2012]容易题(easy)

    bzoj2751[HAOI2012]容易题(easy) 题意: 已知一个数列A对于所有的A[i]都是1~n的自然数,一些A[i]不能取一些值,求出所有可能的数列的积的和 mod 1000000007的 ...

  2. 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题

    Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...

  3. bzoj2751 [HAOI2012]容易题(easy)

    Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...

  4. bzoj 2751: [HAOI2012]容易题(easy)

    2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2561  Solved: 1076 [Submi ...

  5. 15年第六届蓝桥杯第九题_(矩阵快速幂优化的动态规划)

    垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...

  6. HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )

    题目链接 题意 : 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 分析 : 直觉是DP 不过当时看到 n 很大.但 ...

  7. 第二十七章 数论——快速幂与逆元

    第二十七章 快速幂与扩展欧几里德算法 一.快速幂 1.使用场景 2.算法思路 (1)二进制优化思想 (2)模运算法则 3.代码实现 (1)问题 (2)代码 二.快速幂求逆元 1.什么是逆元? (1)同 ...

  8. BZOJ-1008 越狱 数论快速幂

    1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 6192 Solved: 2636 [Submit][Status] ...

  9. 数论-快速幂、矩阵快速幂、慢速乘

    文章目录 快速幂 矩阵快速幂 慢速乘 例题 HDU-2817 HDU-3117 XUJC-1395 快速幂 首先幂运算 a n a^n an就是 n n n个 a a a相乘,我们可以直接调用库函数 ...

最新文章

  1. 赛门铁克针对勒索软件WannaCry发布全球预警
  2. 导出的swf文件显示 不出来地图
  3. 常见拒绝服务攻击行为特征与防御方法
  4. notepad++的好用快捷键整理
  5. 使用Go语言从零编写PoS区块链
  6. 蚂蚁森林快捷指令_利用快捷指令实现钉钉自动化打卡
  7. UBUNTU上VNC 配置
  8. kotlin学习笔记——过程控制和Range表达式
  9. 深度解析 | 基于DAG的分布式任务调度平台:Maat 1
  10. C#相关时间DateTime格式化
  11. 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
  12. 【原创】技术员 Win10(32位)系统1709企业版 201711
  13. 注册表REG文件编写大全
  14. 3.25万颗!真正前装上车的激光雷达供应商有哪几家?
  15. IM即时通讯-3-如何设计消息协议层方案
  16. K8S相同后端存储在2个K8S集群PVC数据直接拷贝
  17. 计算机键盘space键在哪,space是哪个键,详细教您space是哪个键
  18. CarEye 智能云平台升级
  19. 超详细 React Native 完全使用指南,学不会你打我
  20. 城乡投票源码php_一个简单的PHP投票程序源码

热门文章

  1. JavaScript的格式--从格式做起,做最严谨的工程师
  2. hadoop的hdfs文件操作实现上传文件到hdfs
  3. 用rapid-framework开源工具快速生成SSH的网站框架MVC模式
  4. java HelloWorld 编程风格实践
  5. http几个版本的区别
  6. 计算机操作系统:虚拟存储器
  7. static在C和C++语言中的作用
  8. 数据为什么要可视化?如何可视化?
  9. 拉格朗日乘数法学习笔记
  10. Greenplum添加mirror步骤