【BZOJ5339】【TJOI2018】教科书般的亵渎
【题目链接】
- 点击打开链接
【思路要点】
- 模拟题目中的过程,我们本质上需要回答\(O(M^2)\)个形如求\(\sum_{i=L}^{R}i^{M+1}\)的询问。
- 拉格朗日插值即可。
- 时间复杂度\(O(TM^3)\)。
【代码】
#include<bits/stdc++.h> using namespace std; const int MAXN = 105; const int P = 1e9 + 7; template <typename T> void chkmax(T &x, T y) {x = max(x, y); } template <typename T> void chkmin(T &x, T y) {x = min(x, y); } template <typename T> void read(T &x) {x = 0; int f = 1;char c = getchar();for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';x *= f; } template <typename T> void write(T x) {if (x < 0) x = -x, putchar('-');if (x > 9) write(x / 10);putchar(x % 10 + '0'); } template <typename T> void writeln(T x) {write(x);puts(""); } int power(int x, int y) {if (y == 0) return 1;int tmp = power(x, y / 2);if (y % 2 == 0) return 1ll * tmp * tmp % P;else return 1ll * tmp * tmp % P * x % P; } namespace Lagrange {int N, x[MAXN], y[MAXN], a[MAXN];void work() {memset(a, 0, sizeof(a));static int p[MAXN], q[MAXN];memset(p, 0, sizeof(p)); p[0] = 1;for (int i = 1; i <= N; i++) {int now = P - x[i];for (int j = i; j >= 1; j--)p[j] = (1ll * p[j] * now + p[j - 1]) % P;p[0] = 1ll * p[0] * now % P;}for (int i = 1; i <= N; i++) {memset(q, 0, sizeof(q));for (int j = N; j >= 0; j--)q[j] = (p[j + 1] + 1ll * q[j + 1] * x[i]) % P;int mul = 1;for (int j = 1; j <= N; j++)if (i != j) mul = 1ll * mul * (x[i] - x[j]) % P;if (mul < 0) mul = P + mul;mul = 1ll * power(mul, P - 2) * y[i] % P;for (int j = 0; j <= N; j++)a[j] = (a[j] + 1ll * q[j] * mul) % P;}}int calc(long long n) {n %= P;int ans = 0, now = 1;for (int i = 0; i <= N; i++) {ans = (ans + 1ll * now * a[i]) % P;now = 1ll * now * n % P;}return ans;}void calc(long long n, int m) {static long long x[MAXN];for (int i = 1; i <= m; i++)read(x[i]);sort(x + 1, x + m + 1);x[m + 1] = n + 1;int ans = 0;for (int i = 0; i <= m; i++)for (int j = i; j <= m; j++)ans = (ans + calc(x[j + 1] - x[i] - 1) - calc(x[j] - x[i])) % P;writeln((ans % P + P) % P);} } int main() {int T; read(T);while (T--) {long long n; int m;read(n), read(m);using namespace Lagrange;N = m + 5;for (int i = 1; i <= m + 5; i++) {x[i] = i;y[i] = (y[i - 1] + power(i, m + 1)) % P;}work();calc(n, m);}return 0; }
【BZOJ5339】【TJOI2018】教科书般的亵渎相关推荐
- BZOJ5339: [TJOI2018]教科书般的亵渎-组合数学
传送门 题意: 在炉石传说中有这样的一个场面:n个随从,血量为1~n,现在去除m个随从,然后开始释放"亵渎".每使用一张"亵渎"会获得一定的分数,分数计算如下: ...
- P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值 + k幂次之和)
洛谷题目链接 题目大意:有点绕,有 n−mn - mn−m 个怪兽,它们的血量在 [1,n][1,n][1,n] 值域上且每个怪兽的血量都不同 (其中 m 个点被挖掉),你每使用一次亵渎会给所有怪兽血 ...
- bzoj 5339 [TJOI2018]教科书般的亵渎 拉格朗日插值
题面 题目传送门 解法 可以发现,题目可以转化成求若干个形如\(\sum_{i=1}^ni^k\)的东西 这个东西可以拉格朗日插值 大概讲一下拉格朗日插值是个什么东西: 显然,\(\sum_{i=1} ...
- 洛谷P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)
题意 题目链接 Sol 打出暴力不难发现时间复杂度的瓶颈在于求\(\sum_{i = 1}^n i^k\) 老祖宗告诉我们,这东西是个\(k\)次多项式,插一插就行了 上面的是\(O(Tk^2)\)的 ...
- 洛谷P4593 [TJOI2018]教科书般的亵渎
链接 点击跳转 题解 分析之后,发现这个题主要是解决这个问题: 求 ∑ i = 1 n i k \sum_{i=1}^n i^k i=1∑nik 根据某些数学上的结论,这个东西是一个包含 n n n ...
- NOI模拟(5.23) TJOID2T3 教科书般的亵渎 (bzoj5339)
教科书般的亵渎 题目背景: 5.23 模拟 TJOI2018D2T3 分析:拉格朗日差值 这个题的题意怕不是有毒,注意他每一次的k是相同的,为总共要用多少次卡片,然后卡片是每次先将所有的数减一,如果这 ...
- 【ybt金牌导航8-3-3】【luogu P4593】分数计算 / 教科书般的亵渎(数学)(拉格朗日插值)
分数计算 / 教科书般的亵渎 题目链接:ybt金牌导航8-3-3 / luogu P4593 题目大意 有一些怪,血量从 1~n,其中有 m 个数是没有怪的,给出这些数. 然后你可以每次操作攻击所有怪 ...
- 教科书般的亵渎(dfs)
题面: 教科书般的亵渎 Time Limit: 1500MS Memory Limit: 65536K Total Submissions: 36 Accepted: 3 Description &q ...
- A - 【深蓝】教科书般的亵渎 (Gym - 102072A )(矩阵快速幂+计算斐波那契数列)
"现在给大家展示一波教科书般的亵渎" "扭了扭了" 炉石传说是一款比较火的卡牌游戏,不同的卡牌间可以打出许多不可思议的配合. 炉石传说的战斗大部分由随从来完成. ...
最新文章
- 如何在Kubernetes集群动态使用 NAS 持久卷
- python函数名的语法_Python 基础语法六 ——函数
- jsoup开发网页客户端3
- 没有流程的项目管理,都是无用功!
- bdphp在线订购是真的么_《瑞评》330i会是宝马粉最后的希望么?
- matplotlib输出图形到网页_必学python库Matplotlib教程分享
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(有舵机)
- 如何快速学习使用mybatis以及总结
- 前后端分离如何解决跨域的问题?
- 《MySQL——分区表小记》
- php snoopy视频教程,php的Snoopy类
- perl6 HTTP::UserAgent (2)
- 格式小结 html 0926
- 数据结构摧毁线性表用c语言,[简述]数据结构-线性表(c语言实现)
- java 正则表达式 table_JavaEdge/Java/Java中正则表达式.md at master · VegTableBird/JavaEdge · GitHub...
- Python_collections_Counter计数器部分功能介绍
- nvcc-V 程序“nvcc”尚未安装。 您可以使用以下命令安装: sudo apt install nvidia-cuda-toolkit
- 扒一扒「清华系」的 AI 安防大佬们
- 内卷机器下的自我救赎
- 国际奥林匹克运动会是怎么来的?