2751: [HAOI2012]容易题(easy)
题目链接
题目大意:一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,求出所有可能的数列的积的和
题解:用小数据手玩一下公式,设m=2,第一项可行的取值为 a1,a2 a_1,a_2,第二项可行的取值为 b1,b2 b_1,b_2,有
ans=a1b1+a1b2+a2b1+a2b2=(a1+a2)∗(b1+b2) ans=a_1b_1+a_1b_2+a_2b_1+a_2b_2=(a_1+a_2)*(b_1+b_2)
然后拓展一下,发现答案等于各项可取的数之和的积
由于k很小,有限制的项占少数,暴力算有限制的即可
再把答案乘上 (n∗(n+1)2)num ({n*(n+1)\over 2})^{num},num为无限制的项数
还要去一下重
我的收获:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;#define M 100005
#define P 1000000007
#define pii pair<int,int>
typedef long long ll;int n,m,k,x,y,cnt;
long long tmp,ans=1,a[M];
pii u[M];ll fpow(ll a,int b){ll c=1;a%=P;for(;b;b>>=1,a=(a*a)%P)if(b&1) c=(c*a)%P;return c%P;
}void work()
{ll ret=0;for(int i=1;i<=k;i++){ret+=u[i].second;ret%=P;if(i==k||u[i].first!=u[i+1].first){ans=ans*((tmp-ret+P)%P)%P;ret=0;cnt++;}}ans=ans*fpow(tmp,m-cnt)%P;cout<<ans<<endl;
}void init()
{cin>>n>>m>>k;for(int i=1;i<=k;i++){scanf("%d%d",&x,&y);u[i]=make_pair(x,y);}sort(u+1,u+1+k);k=unique(u+1,u+1+k)-(u+1);tmp=(ll)n*(n+1)/2%P;
}int main()
{init();work();return 0;
}
2751: [HAOI2012]容易题(easy)相关推荐
- bzoj 2751: [HAOI2012]容易题(easy)
2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2561 Solved: 1076 [Submi ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
[bzoj2751][HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而 ...
- bzoj2751[HAOI2012]容易题(easy)
bzoj2751[HAOI2012]容易题(easy) 题意: 已知一个数列A对于所有的A[i]都是1~n的自然数,一些A[i]不能取一些值,求出所有可能的数列的积的和 mod 1000000007的 ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...
- bzoj2751 [HAOI2012]容易题(easy)
Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取 ...
- 小M的简单题(easy)
小M的简单题(easy) 时间限制:3s 内存限制:128MB [题目描述] 小M是某知名高中的学生,有一天,他请他的n个同学吃苹果,同学们排成一行,且手中已经有一些苹果.为了表示他的大方,有时他会给 ...
- 洛谷2220 [HAOI2012]容易题
标签:快速幂 题目 题目传送门 题目描述 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于 ...
- 洛谷 2220 [HAOI2012]容易题 题解(组合数学,离散化)
原链接: 洛谷:点我QωQ bzoj:点我QωQ 题意简述 一个长度为mmm的数列aaa,每个数都在[1,n][1,n][1,n]之间,有kkk个限制.第iii个限制包含两个正整数x,yx,yx,y, ...
- 2020年牛客多校第五场C题-easy(纯组合计数不要生成函数的做法)
文章目录 description solution code description 有TTT组测试数据 对于两个长度为KKK的数列{a}\{a\}{a}和{b}\{b\}{b},满足∑i=1Kai= ...
最新文章
- iOS 组件化 —— 路由设计思路分析
- 第5章 定时器Timer
- memcache/memcached/memcachedb 配置、安装(转)
- IntelliJ IDEA编码设置
- Java集合框架-概述
- vue 编辑弹框,编辑页面,列表数据也会跟着变
- 逆幂律模型_【微微出品】加速模型一起聊聊Peck、Lawson、MILHDBK217
- java会跳出problem_docs/java/concurrent/ConcurrencyProblem.md · wt1814/wt-note - Gitee.com
- python高级-异常(13)
- AcWing 869. 试除法求约数(枚举)
- 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) D】Count The Bits【数位DP】
- python职场应用英语作文_春考关于职场应用的英语作文
- Cuba 设置debug模式
- 【大数据----Spark】Spark入门教程[3]
- vue基于element组件的国籍选择框
- SAP ADM100 学习笔记
- 43款设计师必备英文设计字体【书法类字体】
- 物流单号查询,在哪里查询快递
- Win10 Windows Defender 保护历史记录清空方法
- mac批量修改文件名、后缀名
热门文章
- ptp虚拟服务器配置,Trimble高精度网络授时服务器 PTP GM200
- Source Insight大括号位置对齐正下方设置
- ipconfig /flushdns
- 编辑线上NG,使用ipconfig /flushdns 清除系统DNS缓存
- FileProvider解决FileUriExposedException
- 推荐一款超实用的免费照片编辑软件给大家!
- 百科知识 .e,.ec文件如何打开
- 一切从Android的Handler讲起(一):Handler工作机制
- jQuery fadeTo() 方法
- js滚动div滚动条到底部