首页 > 其他分享 >NC19989 [HAOI2012]容易题(EASY)

NC19989 [HAOI2012]容易题(EASY)

时间:2023-08-26 17:56:26浏览次数:51  
标签:le EASY int NC19989 1LL HAOI2012 ans sum 数列

题目链接

题目

题目描述

为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:

有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,要求你求出所有可能的数列的积的和 mod 1000000007的值,是不是很简单呢?呵呵!

输入描述

第一行三个整数n,m,k分别表示数列元素的取值范围,数列元素个数,以及已知的限制条数。
接下来k行,每行两个正整数x,y表示A[x]的值不能是y。

输出描述

一行一个整数表示所有可能的数列的积的和对1000000007取模后的结果。如果一个合法的数列都没有,答案输出0。

示例1

输入

3 4 5
1 1
1 1
2 2
2 3
4 3

输出

90

说明

样例解释
A[1]不能取1
A[2]不能去2、3
A[4]不能取3
所以可能的数列有以下12种
数列 积
2 1 1 1 2
2 1 1 2 4
2 1 2 1 4
2 1 2 2 8
2 1 3 1 6
2 1 3 2 12
3 1 1 1 3
3 1 1 2 6
3 1 2 1 6
3 1 2 2 12
3 1 3 1 9
3 1 3 2 18

备注

30%的数据 \(n \le 4,m \le 10,k \le 10\)
另有20%的数据 \({k=0}\)
70%的数据 \(n \le 1000,m \le 1000,k \le 1000\)
100%的数据 \(n \le 10^9,m \le 10^9,k \le 10^5,1 \le y \le n,1 \le x \le m\)

题解

知识点:组合数学。

因为是求乘积的总和,我们可以利用分配律,把式子等价变换成每个数字可能值的和(贡献)的乘积。

这是对含有分配律的式子的常见处理方式,比较典型的就是乘法对加法的分配律。当然,还有对纯加法,利用交换律的分组求和,比较典型的就是在处理子区间异或和之和问题中的拆位优化,对每位分组一并处理。

因此,如果都没有限制,那么总和应该为 \(\displaystyle \prod_{i=1}^m \sum_{j=1}^n j = \prod_{i=1}^m \frac{n(n+1)}{2} = \left( \frac{n(n+1)}{2} \right)^m\) 。

考虑加上约束,那么就是给某些数的贡献减去约束值的和 \(sum\) ,那么它们的贡献就为 \(\dfrac{n(n+1)}{2} - sum\) 。

时间复杂度 \(O(k \log k + \log m)\)

空间复杂度 \(O(k)\)

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const int P = 1e9 + 7;
int qpow(int a, ll k) {
    int ans = 1;
    while (k) {
        if (k & 1) ans = 1LL * ans * a % P;
        k >>= 1;
        a = 1LL * a * a % P;
    }
    return ans;
}

int main() {
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n, m, k;
    cin >> n >> m >> k;
    map<int, set<int>> mp;
    for (int i = 1;i <= k;i++) {
        int x, y;
        cin >> x >> y;
        mp[x].insert(y);
    }
    int ans = 1;
    for (auto [x, st] : mp) {
        int sum = 0;
        for (auto y : st) (sum += y) %= P;
        ans = 1LL * ans * (1LL * n * (n + 1) / 2 % P - sum + P) % P;
    }
    ans = 1LL * ans * qpow(1LL * n * (n + 1) / 2 % P, m - mp.size()) % P;
    cout << ans << '\n';
    return 0;
}

标签:le,EASY,int,NC19989,1LL,HAOI2012,ans,sum,数列
From: https://www.cnblogs.com/BlankYang/p/17659201.html

相关文章

  • easypoi导入导出字段字典码值自动转换
    1.replace进行内容替换@Excel(name="是否有效",width=30,replace={"是_1","否_0","_null"})privateStringisEffective;Excel文件内'是否有效'这列的数据将会根据replace规则替换,例如'是'会被替换为'1',空白会被替换为null。反过来导出数据到E......
  • 视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视频监控的能力,......
  • 国标EHOME视频平台EasyCVR如何解决医疗安保困难
    随着社会经济技术的不断进步和人类生活水平的提高,人们对医疗安全的意识也越来越强烈。在如何营造安全的医疗生产环境、提供有效的医疗服务方面,政府机构正面临迫切需要解决和改善的问题。特别是在大型和专业的医院中,由于医疗设备昂贵、人员流动性高、科室职责分工细致、协同工作频繁......
  • 国标视频云服务EasyGBS国标视频平台视频快照无法显示的问题解决步骤
    国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等......
  • RTSP流媒体服务器EasyNVR视频平台设备通道时间与服务器录像时间不一致的问题解决步骤
    EasyNVR平台优秀的视频能力在于通过RTSP/ONVIF协议,将前端接入设备的音视频资源进行采集,并转码成适合全平台、全终端分发的视频流格式,包括RTMP、RTSP、FLV、HLS、WebRTC等格式。平台已经在智慧水利、智慧工厂、智慧校园、智慧仓储等场景中应用。​ 有用户反馈,设......
  • 国标视频云服务EasyGBS国标视频平台批量开启按需直播详细操作步骤
    国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格......
  • 国标视频云服务EasyGBS国标视频平台批量开启按需直播详细操作步骤
    国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等......
  • 国标视频平台EasyGBS视频能力平台Linux版内核启动报错端口占用的问题解决方案
    EasyGBS国标视频云服务是基于国标GB/T28181协议的视频能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等......
  • 视频智能分析平台EasyCVR视频汇聚平台关于AI分析告警列表的定制详细介绍
    安防监控视频集中存储/云存储EasyCVR视频汇聚平台基于云边端一体化架构,可支持多协议、多类型设备接入,视频监控综合管理平台具有强大的数据接入、处理及分发能力,能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、存储、集中管理。 ​ 我们......
  • 安防监控平台EasyCVR视频汇聚平台增加首页告警类型的详细介绍
    安防监控/视频集中存储/云存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等功能。由于EasyCV......