loj2253 「SNOI2017」礼物】的更多相关文章

对于一个在位置 \(i\) 的数,他等于 \(i^k+sum_{1,k-1}\). 二项式定理推 \(i^k\),矩阵快速幂即可. #include <iostream> #include <cstdio> using namespace std; typedef long long ll; int k, c[15][15]; ll n; const int mod=1e9+7; struct Matrix{ int num[15][15]; Matrix operator*(co…
题目链接:Click here Solution: 设\(f(x)\)代表第\(x\)个人送的礼物的数量,\(s(x)\)代表\(f(x)\)的前缀和,即: \[ f(x)=s(x-1)+x^k\\ s(x)=s(x-1)+f(x)\\ s(x)=2\times s(x-1)+x^k \] 则我们只需求出\(s(n-1)\)即可,\(n\le1e18\),考虑矩阵快速幂优化\(dp\) 这里唯一麻烦的就是\(x^k\),考虑二项式定理:\((x+1)^k=\sum_{i=0}^k{k\choos…
#2020. 「HNOI2017」礼物 思路: A题进程: 一眼出式子->各种超时过不去->看题解明白还有fft这个东西->百度文库学习fft->学习dft->学习fft->死活写不出代码->比着大佬博客敲代码->ac->不容易啊.. 代码: #include <bits/stdc++.h> using namespace std; #define maxn 500005 #define INF 0x3f3f3f3f ); struct C…
#2255. 「SNOI2017」炸弹 题目描述 在一条直线上有 NNN 个炸弹,每个炸弹的坐标是 XiX_iX​i​​,爆炸半径是 RiR_iR​i​​,当一个炸弹爆炸时,如果另一个炸弹所在位置 XjX_jX​j​​ 满足: Xi−Ri≤Xj≤Xi+Ri X_i-R_i\leq X_j \leq X_i+R_iX​i​​−R​i​​≤X​j​​≤X​i​​+R​i​​ 那么,该炸弹也会被引爆. 现在,请你帮忙计算一下,先把第 iii 个炸弹引爆,将引爆多少个炸弹呢? 输入格式 第一行,一个数字…
#2254. 「SNOI2017」一个简单的询问 题目描述 给你一个长度为 NNN 的序列 aia_ia​i​​,1≤i≤N1\leq i\leq N1≤i≤N,和 qqq 组询问,每组询问读入 l1,r1,l2,r2l_1,r_1,l_2,r_2l​1​​,r​1​​,l​2​​,r​2​​,需输出 ∑x=0∞get(l1,r1,x)⋅get(l2,r2,x) \sum\limits_{x=0}^\infty \text{get}(l_1,r_1,x)\cdot \text{get}(l_2,…
loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 建新图要判重. 内存永远算不对 代码 #include <bits/stdc++.h> #define ll long long using namespace std; const int N=1e6+7,mod=1e9+7; ll read() { ll x=0,f=1;char s=getc…
「SNOI2017」一个简单的询问 简单的解法 显然可以差分一下. \[get(l,r,x)\times get(l1,r1,x)=get(1,r,x) \times get(1,r1,x)-get(1,l-1,x) \times get(1,r1,x)-get(1,r,x) \times get(1,l1-1,x)+get(1,l-1,x) \times get(1,l1-1,x) \] 因为都是1为起始,那么记两个cnt数组,表示前缀,然后可以分成四个区间,莫队. #include <bit…
https://loj.ac/problem/2256 题目描述 正在上大学的小皮球热爱英雄联盟这款游戏,而且打的很菜,被网友们戏称为「小学生」.现在,小皮球终于受不了网友们的嘲讽,决定变强了,他变强的方法就是:买皮肤!小皮球只会玩 NNN 个英雄,因此,他也只准备给这 NNN 个英雄买皮肤,并且决定,以后只玩有皮肤的英雄.这 NNN 个英雄中,第 iii 个英雄有 KiK_iK​i​​ 款皮肤,价格是每款 CiC_iC​i​​ Q币(同一个英雄的皮肤价格相同).为了让自己看起来高大上一些,小皮…
3055: 礼物运送 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 18  Solved: 12[Submit][Status] Description 机器人刚刚探查归来,探险队员们突然发现自己的脚下出现了一朵朵白云,把他们托向了空中.一阵飘飘然的感觉过后,队员们发现自己被传送到了一座空中花园. “远道而来的客人,我们是守护Nescafe之塔的精灵.如果你们想拜访护法和圣主的话,就要由我们引路.因此,你们是不是该给我们一点礼物呢T_T?” 队员们…
本文为线段树做法 (听说可以tarjan缩点+拓扑? 感觉差不多..而且这样看起来方便很多 找到左端点的过程可以看作 点 -> 区间内lowerbound最小的点 -> lowerbound -> 区间内lowerbound最小的点 -> lowerbound -> ...... 所以直接维护每个点lowerbound,线段树维护下就好啦 右端点同理 #include <cstdio> #include <algorithm> #include <…