当前位置: 首页 > news >正文

【智力测试——二分、前缀和、乘法逆元、组合计数】

题目

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int mod = 1e9 + 7;
const int N = 1e5 + 10;
int r[N], c[N], f[2 * N];
int nr[N], nc[N], nn, nm;
int cntr[N], cntc[N];
int n, m, t;void init(int n) {f[0] = f[1] = 1;for (int i = 2; i <= n; i++)f[i] = (ll)f[i - 1] * i % mod;
}ll qmi(ll base, int expo) {ll retv = 1;while (expo) {if (expo & 1)retv = retv * base % mod;base = base * base % mod;expo >>= 1;}return retv;
}void discretize() {int last = -1;for(int i = 1; i <= n; i++) {if(nr[i] > last) ++nn, cntr[nn]++, last = nr[i];else cntr[nn]++;}last = -1;for(int i = 1; i <= m; i++) {if(nc[i] > last) ++nm, cntc[nm]++, last = nc[i];else cntc[nm]++;}cntr[0] = 1;for(int i = 1; i <= nn; i++)cntr[i] = (ll)cntr[i] * cntr[i-1] % mod;cntc[0] = 1;for(int i = 1; i <= nm; i++)cntc[i] = (ll)cntc[i] * cntc[i-1] % mod;nn = unique(nr+1, nr+n+1) - nr - 1;nm = unique(nc+1, nc+m+1) - nc - 1;
}int main() {ios::sync_with_stdio(0);cin.tie(0);init(2e5);cin >> n >> m >> t;for (int i = 1; i <= n; i++)cin >> r[i], nr[i] = r[i];for (int i = 1; i <= m; i++)cin >> c[i], nc[i] = c[i];sort(nr + 1, nr + n + 1);sort(nc + 1, nc + m + 1);discretize();while (t--) {int sr, sc, tr, tc;cin >> sr >> sc >> tr >> tc;if ((r[tr] <= r[sr] && tr != sr) || (c[tc] <= c[sc] && tc != sc)) {cout << 0 << '\n';continue;}int srp = lower_bound(nr + 1, nr + nn + 1, r[sr]) - nr;int trp = lower_bound(nr + 1, nr + nn + 1, r[tr]) - nr;int scp = lower_bound(nc + 1, nc + nm + 1, c[sc]) - nc;int tcp = lower_bound(nc + 1, nc + nm + 1, c[tc]) - nc;int drp = trp - srp;int dcp = tcp - scp;int ans = (ll)f[drp + dcp] * qmi(f[drp], mod - 2) % mod * qmi(f[dcp], mod - 2) % mod;if(drp) ans = (ll)ans * cntr[trp-1] % mod * qmi(cntr[srp], mod-2) % mod;if(dcp) ans = (ll)ans * cntc[tcp-1] % mod * qmi(cntc[scp], mod-2) % mod;cout << ans << '\n';}
}

http://www.lryc.cn/news/531060.html

相关文章:

  • Spring Security(maven项目) 3.0.2.9版本 --- 改
  • 并发编程中的常见问题
  • 二维前缀和:高效求解矩阵区域和问题
  • 鸢尾花书《编程不难》02---学习书本里面的三个案例
  • MySQL(高级特性篇) 13 章——事务基础知识
  • CSS Display属性完全指南
  • 【机器学习篇】K-Means 算法详解:从理论到实践的全面解析
  • IntelliJ IDEA远程开发代理远程服务器端口(免费内网穿透)
  • 内核定时器3-用户空间定时器
  • C++ 字面量深度解析:从基础到实战进阶
  • 论文paper(更新...)
  • 变形金刚多元宇宙
  • HTTP协议的无状态和无连接
  • ASP.NET代码审计 SQL注入篇(简单记录)
  • 毫秒级响应的VoIP中的系统组合推荐
  • w186格障碍诊断系统spring boot设计与实现
  • shell -c
  • (笔记+作业)书生大模型实战营春节卷王班---L1G3000 浦语提示词工程实践
  • 文献学习笔记:中风醒脑液(FYTF-919)临床试验解读:有效还是无效?
  • Chapter2 Amplifiers, Source followers Cascodes
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(绘图设备封装)
  • Android学习19 -- 手搓App
  • pytorch基于GloVe实现的词嵌入
  • SpringCloud篇 微服务架构
  • 背包问题和单调栈
  • Java | CompletableFuture详解
  • 【背包问题】二维费用的背包问题
  • Golang 并发机制-5:详解syn包同步原语
  • 实验六 项目二 简易信号发生器的设计与实现 (HEU)
  • 如何用微信小程序写春联