SDOI2018:荣誉称号
题解:
https://files.cnblogs.com/files/clrs97/title-solution.pdf
Code:
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=2100,M=205,BUF=15000000;
const ll inf=1LL<<60;
unsigned int SA,SB,SC;
int Case,p,A,B,n,K,m,i,j,x,y,lim,d[N];
ll sum[N],w[N][M],f[N][M];
char Buf[BUF],*buf=Buf;
inline void read(int&a){for(a=0;*buf<48;buf++);while(*buf>47)a=a*10+*buf++-48;}
inline void read(unsigned int&a){for(a=0;*buf<48;buf++);while(*buf>47)a=a*10+*buf++-48;}
inline unsigned int rng61(){
SA^=SA<<16;
SA^=SA>>5;
SA^=SA<<1;
unsigned int t=SA;
SA=SB;
SB=SC;
SC^=t^SA;
return SC;
}
inline void input(int x,int A,int B){
while((x>>j)>lim)j+=K;
x>>=j;
A%=m;
sum[x]+=B;
w[x][0]+=(m-A)*B;
w[x][A]-=m*B;
}
inline void up(ll&a,ll b){a>b?(a=b):0;}
void dfs(int x){
int l=x<<1,r=x<<1|1,i,j;
if(l>lim){
for(i=0;i<m;i++)f[x][i]=w[x][i];
return;
}
for(i=0;i<m;i++)f[x][i]=inf;
dfs(l);
if(r>lim||d[l]!=d[r]){
for(i=0;i<m;i++)for(j=0;j<m;j++)up(f[x][(i+j)%m],w[x][i]+f[l][j]);
return;
}
dfs(r);
for(i=0;i<m;i++)for(j=0;j<m;j++)up(f[x][(i+j)%m],w[x][i]+f[l][j]+f[r][j]);
}
void solve(){
read(n),read(K),read(m),read(p),read(SA),read(SB),read(SC),read(A),read(B);
K++;
lim=min((1<<K)-1,n);
for(i=1;i<=lim;i++){
sum[i]=0;
for(j=0;j<m;j++)w[i][j]=0;
}
for(i=1,j=0;i<=p;i++){
read(x),read(y);
input(i,x,y);
}
for(i=p+1;i<=n;i++){
x=rng61()%A+1;
y=rng61()%B+1;
input(i,x,y);
}
for(i=1;i<=lim;i++){
for(j=1;j<m;j++)w[i][j]+=w[i][j-1];
for(j=1;j<m;j++)w[i][j]+=sum[i]*j;
}
for(i=lim;i;i--){
d[i]=0;
if((i<<1)<=lim)d[i]=d[i<<1];
d[i]++;
}
dfs(1);
printf("%lld\n",f[1][0]);
}
int main(){
fread(Buf,1,BUF,stdin);
read(Case);
while(Case--)solve();
return 0;
}
SDOI2018:荣誉称号的更多相关文章
- [loj#2566][BZOJ5333] [Sdoi2018]荣誉称号 树形dp
#2566. 「SDOI2018」荣誉称号 休闲游戏玩家小 Q 不仅在算法竞赛方面取得了优异的成绩,还在一款收集钻石的游戏中排名很高. 这款游戏一共有 n 种不同类别的钻石,编号依次为 1 到 n ...
- [SDOI2018]荣誉称号
题解: 并不需要什么算法 首先我们随便画一画就会发现 能画出一颗满二叉树 然后要满足每个点从上往下的路径和都相同(%m意义下) 一个点上可能对应了多个点 然后这样我们可以暴力dp $2^k*m^2+n ...
- BZOJ5333 [Sdoi2018]荣誉称号 【差分 + 树形dp】
题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我 ...
- BZOJ5333:[SDOI2018]荣誉称号——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5333 https://www.luogu.org/problemnew/show/P4620 题意 ...
- bzoj5333: [Sdoi2018]荣誉称号
请不要去改题目给的输入,不然你会wa穿... 这么故弄玄虚的题目,肯定要先转换问题 看到这个不断的除2想起别人家的线段树的写法...x的两个孩子是x<<1和x<<1|1 然后问 ...
- SDOI2018
SD的题有点反人类啊... d1t1[SDOI2018]物理实验 感觉比较好想但不太好写,写了一半弃了 d1t2[SDOI2018]战略游戏 建出圆方树,每次建虚树,答案就是虚树上的原点个数减去询问的 ...
- [SDOI2018] 旧试题
推狮子的部分 \[ \sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sigma(ijk) =\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sum_ ...
- 【BZOJ5332】[SDOI2018]旧试题(数论,三元环计数)
[BZOJ5332][SDOI2018]旧试题(数论,三元环计数) 题面 BZOJ 洛谷 题解 如果只有一个\(\sum\),那么我们可以枚举每个答案的出现次数. 首先约数个数这个东西很不爽,就搞一搞 ...
- [SDOI2018]战略游戏 圆方树,树链剖分
[SDOI2018]战略游戏 这题是道路相遇(题解)的升级版,询问的两个点变成了\(S\)个点. LG传送门 还是先建出圆方树,考虑对于询问的\(S\)个点,答案就是圆方树上能包含这些点的最小连通块中 ...
随机推荐
- django系列7:修改404页面展示,优化模板,降低urlconf和模板之间的耦合,命名app将模板和app绑定
为了增加程序的友好和健壮性,修改view代码,处理以下如果出现404,页面的UI展示. 修改view代码 from django.http import Http404 from django.sho ...
- TensorFlow迁移学习的识别花试验
最近学习了TensorFlow,发现一个模型叫vgg16,然后搭建环境跑了一下,觉得十分神奇,而且准确率十分的高.又上了一节选修课,关于人工智能,老师让做一个关于人工智能的试验,于是觉得vgg16很不 ...
- 将matlab数据保存为excel文件
摘录网址:https://blog.csdn.net/wangh0802/article/details/70312415 参考网址:https://jingyan.baidu.com/article ...
- CAS实现单点登录
1.简介 SSO单点登录 在多个相互信任的系统中,用户只需要登录一次就可以访问其他受信任的系统. 新浪微博与新浪博客是相互信任的应用系统. *当用户首次访问新浪微博时,新浪微博识别到用户未登录,将请求 ...
- 第九节:从源码的角度分析MVC中的一些特性及其用法
一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出. 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集 ...
- [物理学与PDEs]第1章习题10 自由电磁场在 Lorentz 规范变换下可使标势为零
在自由电磁场的情况, 证明: 在保持 Lorentz 条件下的规范变换下, 可使标势恒为零. 证明: 取 $\psi$ 满足 $\cfrac{\p \psi}{\p t}=\phi$ 且 $\cfra ...
- python 写代码笔记 2017.6.15
其实并不是越复杂的代码越好,简单高效才是好. 关键是思路和逻辑,还有多看别人写的代码. 学习到了:)
- UEditor调用上传图片、上传文件等模块
来源:https://www.cnblogs.com/lhm166/articles/6079973.html 说到百度富文本编辑器ueditor(下面简称ue),我不得不给它一个大大的赞.我们在网站 ...
- Easy RM to MP3 Converter栈溢出定位及漏洞利用
本文主要是Easy RM to MP3 Converter(MFC++编写)栈溢出的定位及windows下shellcode编写的一些心得. 用到的工具及漏洞程序下载地址https://github. ...
- C# 最牛逼的Utility工具类
完整代码: using System; using System.Collections.Specialized; using System.IO; using System.Net; using S ...