已完成2/9(要准备中考啊QwQ)

T1

  考虑对所有数分解质因数,其中因子>sqrt(100000)的因子最多有一个,于是我们可以暴力维护<sqrt(100000)的因子个数的前缀和。

  剩下的就是判区间里一个数出现的次数。我写了主席树。。。

  code

  

#include <bits/stdc++.h>
using namespace std;
int tot,i,j,k,n,m,x,y,t,cas,prime1[],prime2[],b[],num1[],num2[],tt,c[],s[][];
inline int read(){
int x=,f=;
char ch=getchar();
while (ch<''||ch>''){f=ch=='-'?-f:f;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-;ch=getchar();}
return x*f;
}
inline void pre(){
tot=;
for (register int i=;i<=;i++)
if (!b[i]){
b[i]=;prime2[i]=++tot;
if (i<)prime1[tot]=i,tt=tot;
for (register int j=i;j<=;j+=i)b[j]=;
}
}
int rt[],l[],r[],size[],num;
inline void Build(int &rt,int L,int R){if (!rt)rt=++num;if (L==R)return;Build(l[rt],L,L+R>>);Build(r[rt],(L+R>>)+,R);}
inline void Insert(int &rt,int la,int L,int R,int v){
if (!rt)rt=++num;
if (L==R){size[rt]=size[la]+;return;}
l[rt]=l[la];r[rt]=r[la];
int mid=L+R>>;
if (v<=mid){l[rt]=;Insert(l[rt],l[la],L,mid,v);}else {r[rt]=;Insert(r[rt],r[la],mid+,R,v);}
}
inline int calc(int rt,int L,int R,int x){
if (!rt)return ;
if (L==R)return size[rt];int mid=L+R>>;
if (x<=mid)return calc(l[rt],L,mid,x);else return calc(r[rt],mid+,R,x);
}
int V[];
int main(){
cas=read();pre();
while (cas--){
n=read();m=read();
for (register int i=;i<=n;i++){
x=read();y=x;V[i]=x;
for (register int j=;j<=tt;j++)s[i][j]=s[i-][j];
for (register int j=;j<=tt;j++){while (x%prime1[j]==)s[i][j]++,x/=prime1[j];if (x==)break;}
c[i]=x;
}
memset(rt,,sizeof rt);
memset(l,,sizeof l);
memset(r,,sizeof r);
memset(size,,sizeof size);
num=;Build(rt[],,tot);
for (register int i=;i<=n;i++)Insert(rt[i],rt[i-],,tot,prime2[c[i]]);
while (m--){
int L=read(),R=read();x=read();
memset(num1,,sizeof num1);
memset(num2,,sizeof num2);
for (register int j=;j<=tt;j++){while (x%prime1[j]==)x/=prime1[j],num2[j]++;if (x==)break;}
for (register int j=;j<=tt;j++)num1[j]=s[R][j]-s[L-][j];
bool bo=;
for (register int j=;j<=tt;j++)if (num1[j]<num2[j]){puts("No");bo=;break;}
if (!bo)continue;
if (x==){puts("Yes");continue;}
if (calc(rt[R],,tot,prime2[x])-calc(rt[L-],,tot,prime2[x])<)puts("No");else puts("Yes");
}
}
return ;
}

T1

T2

  考虑DP,f[i][j][x][y]表示走到i,j,并且路径上有x个没选,并在前i-1行以及第i行前j-1个里选了y个的最优值。ans显然等于max(f[n][m][i][i])0<=i<=t

  然后转移。

  f[i][j][x][y]可以直接转移到f[i][j+1][x][y]以及f[i][j+1][x+1][y](i,j+1不选)

  再考虑往下转移,(i+1,j)也可以选或不选,然后,再在(i,j+1)~(i,m)以及(i+1,1)~(i+1,j-1)中选最大的k个,转移给f[i+1][j][x+(1 or 0)][y+k]

  code

#pragma GCC optimize(2)
#include <bits/stdc++.h>
#define RI register int
using namespace std;
typedef long long ll;
int i,j,k,n,m,x,y,t,T,b[][][];
ll f[][][][],a[][];
int read(){
int x=,f=;
char ch=getchar();
while (ch<''||ch>''){f=ch=='-'?-f:f;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-;ch=getchar();}
return x*f;
}
inline int max(int x,int y){return x>y?x:y;}
int main(){
T=read();
while (T--){
n=read();m=read();x=read();
for (RI i=;i<=n;i++)for (RI j=;j<=m;j++)scanf("%lld",&a[i][j]);;
memset(b,,sizeof b);
for (RI i=;i<n;i++)
for (RI j=;j<=m;j++){
for (RI k=j+;k<=m;k++)b[i][j][++b[i][j][]]=a[i][k];
for (RI k=;k<j;k++)b[i][j][++b[i][j][]]=a[i+][k];
sort(b[i][j]+,b[i][j]++b[i][j][]);
}
memset(f,-,sizeof f);
f[][][][]=a[][];f[][][][]=;
for (RI i=;i<=n;i++)
for (RI j=;j<=m;j++)
for (RI k=;k<=x;k++)
for (RI t=;t<=x;t++)
if (f[i][j][k][t]>-){
if (j<=m){
f[i][j+][k][t]=max(f[i][j+][k][t],f[i][j][k][t]+a[i][j+]);
if (k<x)f[i][j+][k+][t]=max(f[i][j+][k+][t],f[i][j][k][t]);
}
if (i<n){
ll p=;
for (RI h1=;h1+t<=x;h1++){
p+=b[i][j][b[i][j][]-h1+];
f[i+][j][k][t+h1]=max(f[i+][j][k][t+h1],f[i][j][k][t]+p+a[i+][j]);
if (k<x){f[i+][j][k+][t+h1]=max(f[i+][j][k+][t+h1],f[i][j][k][t]+p);}
}
}
}
ll ans=;for (RI i=;i<=x;i++)ans=max(ans,f[n][m][i][i]);
printf("%lld\n",ans);
}
return ;
}

T2

bzoj5月月赛订正的更多相关文章

  1. BZOJ Lydsy5月月赛 ADG题解

    题目链接 BZOJ5月月赛 题解 好弱啊QAQ只写出三题 A 判断多干个数乘积是否是某个数的倍数有很多方法,比较常用的是取模,但这里并不适用,因为模数不定 会发现数都比较小,所以我们可以考虑分解质因子 ...

  2. [补档][Lydsy2017年4月月赛]抵制克苏恩

    [Lydsy2017年4月月赛]抵制克苏恩 题目 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平. 如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一 ...

  3. 洛谷4月月赛R2

    洛谷4月月赛R2 打酱油... A.koishi的数学题  线性筛约数和就可以\(O(N)\)了... #include <iostream> #include <cstdio> ...

  4. 洛谷3月月赛 R1 Step! ZERO to ONE

    洛谷3月月赛 R1 Step! ZERO to ONE 普及组难度 290.25/310滚粗 t1 10分的日语翻译题....太难了不会... t2 真·普及组.略 注意长为1的情况 #include ...

  5. 【洛谷5月月赛】玩游戏(NTT,生成函数)

    [洛谷5月月赛]玩游戏(NTT,生成函数) 题面 Luogu 题解 看一下要求的是什么东西 \((a_x+b_y)^i\)的期望.期望显然是所有答案和的平均数. 所以求出所有的答案就在乘一个逆元就好了 ...

  6. BZOJ5091 摘苹果 BZOJ2017年11月月赛 概率,期望

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5091 11月月赛B题 题意概括 题解 代码 #include <cstring> #i ...

  7. BZOJ5090 组题 BZOJ2017年11月月赛 二分答案 单调队列

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5090 11月月赛A题 题意概括 给出n个数. 求连续区间(长度大于等于k)最大平均值. 题解 这题 ...

  8. 洛谷P3862 8月月赛B

    https://www.luogu.org/problemnew/show/P3862#sub P3862 8月月赛B 推公式:f(n)->f(n+1) 奇葩的预处理 https://www.l ...

  9. 【BZOJ 4832 】 4832: [Lydsy2017年4月月赛]抵制克苏恩 (期望DP)

    4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 275  Solved: 87 Descripti ...

随机推荐

  1. 使用selenium进行自动化测试

    selenium 支持多个客户端:ruby,Java,python.可以用来对网页进行全面测试,支持真实浏览器测试. firefox IE chrome safari 支持多操作系统: Linux w ...

  2. 20155227《网络对抗》Exp3 免杀原理与实践

    20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...

  3. python 回溯法 子集树模板 系列 —— 14、最长公共子序列(LCS)

    问题 输入 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个. 输入示例 belong cnblogs 输出示例 blog ...

  4. P4292 [WC2010]重建计划

    无脑上二分+淀粉质完事了 每个子树算的时候把儿子按照最长路径从小到大依次做,和前面的单调队列算一波,每个儿子的复杂度不超过这个子树大小 // luogu-judger-enable-o2 #inclu ...

  5. 洛咕 P2336 [SCOI2012]喵星球上的点名

    洛咕 P2336 [SCOI2012]喵星球上的点名 先求出SA和height,一个点名串对应的就是一段区间,还有很多个点,就转化成了 有很多个区间,很多个点集,对每个区间计算和多少个点集有交,对每个 ...

  6. JS关闭窗口而不提示

    使用js关闭窗口而不提示代码: window.opener = null; window.open( '', '_self' ); window.close();

  7. 【ORACLE】oracle11g单实例安装

    -- 上传安装包 p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip -- 解压安装包 unzi ...

  8. 如何有效的报告bug?

    对于比较棘手的bug,反馈务须清晰.详细.精确,我们给出以下6个建议: 1.现场演示:重复bug出现的操作步骤.这个适用于公司内部人员.   2.详细描述:在什么系统使用哪个版本的YoMail,做了什 ...

  9. Windows10没有修改hosts文件权限的解决方案(亲测有效)

    当遇到有hosts文件不会编辑或者,修改了没办法保存”,以及需要权限等问题如图: 或者这样: 我学了一招,现在教给你: 1.win+R 2.进入hosts的文件所在目录: 3.我们开始如何操作才能不出 ...

  10. WebService技术,服务端发布到Tomcat(使用Servlet发布),客户端使用axis2实现(二)

    还是在WebService技术,服务端and客户端JDK-wsimport工具(一)的基础上实现.新建一个包:com.aixs2client.目录结构如下: 一.服务端: 1.还是使用com.webs ...