题面:https://www.cnblogs.com/Juve/articles/11425141.html

math:仔细看看其实是个水题

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
#define re register
using namespace std;
const int MAXN=5e5+5;
const int MAXM=1e6+5;
int n,k,a[MAXN],g,sum;
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
signed main(){
scanf("%lld%lld",&n,&k);
for(re int i=1;i<=n;i++) scanf("%lld",&a[i]);
g=k;
for(int i=1;i<=n;i++) g=gcd(a[i],g);
sum=k/g;
printf("%lld\n",sum);
for(int i=0;i*g<k;i++){
printf("%lld ",i*g);
}
puts("");
return 0;
}

biology:dp,维护4个最大值

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAXN 2005
#define re register
#define int long long
using namespace std;
int n,m,a[MAXN][MAXN],b[MAXN][MAXN],ans=0,tot=0,st;
struct node{
int x,y,a,b;
friend bool operator < (node p,node q){
return p.a<q.a;
}
}t[MAXN*MAXN];
bool vis[MAXN*MAXN];
int px1,px2,px3,px4,mx1,mx2,mx3,mx4;
signed main(){
scanf("%lld%lld",&n,&m);
for(re int i=1;i<=n;i++)
for(re int j=1;j<=m;j++)
scanf("%lld",&a[i][j]);
for(re int i=1;i<=n;i++)
for(re int j=1;j<=m;j++){
scanf("%lld",&b[i][j]);
if(a[i][j]==0) continue;
t[++tot]=(node){i,j,a[i][j],b[i][j]};
}
sort(t+1,t+tot+1);
t[0]=t[1];
for(int i=1;i<=tot;i++) if(t[i].a!=t[i-1].a) vis[i]=1;
for(int i=1;i<=tot;i++){
int x=t[i].x,y=t[i].y,res=t[i].b;
if(vis[i]){
st=i;
break;
}
px1=max(px1,res-x-y);
px2=max(px2,res-x+y);
px3=max(px3,res+x-y);
px4=max(px4,res+x+y);
}
for(int i=st;i<=tot;i++){
int x=t[i].x,y=t[i].y,res=0;
if(vis[i]){
mx1=max(mx1,px1);
mx2=max(mx2,px2);
mx3=max(mx3,px3);
mx4=max(mx4,px4);
px1=px2=px3=px4=0;
}
res=max(max(mx1+x+y,mx2+x-y),max(mx3-x+y,mx4-x-y))+t[i].b;
px1=max(px1,res-x-y);
px2=max(px2,res-x+y);
px3=max(px3,res+x-y);
px4=max(px4,res+x+y);
ans=max(ans,res);
}
printf("%lld\n",ans);
return 0;
}
/*
3 3
0 6 8
1 6 1
0 6 8
0 1 2
3 4 5
0 6 7
*/

english:

ans1用单调栈处理出每一个ai,它作为最大值的区间,然后维护前缀和,sum[i][j]表示前j个数第i位上有几个1

ans2用可持久化01trie做

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define int long long
using namespace std;
const int MAXN=1e5+5;
const int mod=1e9+7;
int n,a[MAXN],opt,sum[22][MAXN],ans1=0,ans2=0;
int sta[MAXN],top=0,l[MAXN],r[MAXN],tot=0;
int tr[MAXN*22][2],size[MAXN*22],root[MAXN];
void insert(int &now,int pre,int val,int i){
now=++tot;
size[now]=size[pre]+1;
if(i<0) return ;
int p=(val>>i)&1;
tr[now][p^1]=tr[pre][p^1];
insert(tr[now][p],tr[pre][p],val,i-1);
size[now]=size[tr[now][0]]+size[tr[now][1]];
}
int query(int rt,int x,int y){
int res=0;
for(int i=20;i>=0;i--){
int p=(x>>i)&1,q=(y>>i)&1;
if(!q){
(res+=size[tr[rt][p^1]])%=mod;
rt=tr[rt][p];
}
else rt=tr[rt][p^1];
if(!rt) break;
}
return res;
}
signed main(){
scanf("%lld%lld",&n,&opt);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
insert(root[i],root[i-1],a[i],20);
int tmp=a[i];
for(int j=0;j<=20;j++){
sum[j][i]=sum[j][i-1];
if((a[i]>>j)&1) sum[j][i]++;
}
}
for(int i=0;i<=20;i++) sum[i][n+1]=sum[i][n],sum[i][0]=0;
for(int i=1;i<=n;i++){
while(top!=0&&a[sta[top]]<a[i]) top--;
if(top==0) l[i]=1;
else l[i]=sta[top]+1;
sta[++top]=i;
}
top=0;
for(int i=n;i>=1;i--){
while(top!=0&&a[sta[top]]<=a[i]) top--;
if(top==0) r[i]=n+1;
else r[i]=sta[top];
sta[++top]=i;
}
for(int i=1,res;i<=n;i++){
res=0;
if(l[i]==r[i]) continue;
for(int j=0;j<=20;j++){
(res+=(((sum[j][i]-sum[j][l[i]-1])*((r[i]-i)-(sum[j][r[i]-1]-sum[j][i-1])))<<j))%=mod;
(res+=(((sum[j][r[i]-1]-sum[j][i-1])*((i-l[i]+1)-(sum[j][i]-sum[j][l[i]-1])))<<j))%=mod;
}
(ans1+=res*a[i]%mod)%=mod;
res=0;
if(i-l[i]<r[i]-i-1){
for(int j=l[i];j<=i;j++)
(res+=(query(root[r[i]-1],a[j],a[i])-query(root[i-1],a[j],a[i])+mod)%mod)%=mod;
}else{
for(int j=i;j<r[i];j++)
(res+=(query(root[i],a[j],a[i])-query(root[l[i]-1],a[j],a[i])+mod)%mod)%=mod;
}
(ans2+=(res*a[i]%mod))%=mod;
}
if(opt==1) printf("%lld\n",ans1%mod);
else if(opt==2) printf("%lld\n",ans2%mod);
else printf("%lld\n%lld\n",ans1%mod,ans2%mod);
return 0;
}

HZOI20190823模拟31题解的更多相关文章

  1. noip模拟31[time·game·cover]

    noip模拟31 solutions 我就觉得这些考试题是越考越难,我是也越考越完蛋,已经完完全全的接近爆零了 只有20pts,说真的这还是我第一次挂掉30pts,本来我还有50pts嘞 所以这次考试 ...

  2. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  3. 「题解」NOIP模拟测试题解乱写I(29-31)

    NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...

  4. [NOIP模拟测试31]题解

    A.math 考场乱搞拿了95,2333. 考虑裴蜀定理:$ax+by=z$存在整数解,当且仅当$gcd(a,b)|z$. 那么如果某个数能够被拼出来,就必须满足所有$a_i$的$gcd$是它的因子. ...

  5. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  6. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  7. HGOI NOIP模拟4 题解

    NOIP国庆模拟赛Day5 题解 T1 马里奥 题目描述 马里奥将要参加 NOIP 了,他现在在一片大陆上,这个大陆上有着许多浮空岛,并且其中一座浮空岛上有一个传送门,马里奥想要到达传送门从而前往 N ...

  8. 10.8 wtx模拟题题解

    填坑 orz w_x_c_q w_x_c_q的模拟赛(150pts,炸了) money 题目背景: 王小呆又陷入自己的梦里.(活在梦里...) 题目描述: 王小呆是一个有梦想的小菜鸡,那就是赚好多好多 ...

  9. [NOIP模拟13]题解

    A.矩阵游戏 其实挺水的? 考场上根本没有管出题人的疯狂暗示(诶这出题人有毛病吧这么简单的东西写一大堆柿子),而且推公式能力近乎没有,所以死掉了. 很显然乘法有交换率结合率所以操作顺序对最终结果没什么 ...

随机推荐

  1. thinkphp 标签嵌套

    模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套. 直线电机价格 系统内置的标签中,volist.switch.if.elseif.else.foreach.compare(包括所有的比 ...

  2. 怎样配置duilib

    duilib是一个免费的界面库,它可利用xml文件自定义界面元素,并且可以在商业项目中无偿使用.怎样在VS中配置duilib界面库呢?请看下面的介绍. 工具/原料 duilib 下载和编译duilib ...

  3. spring事务管理几种方式

    前段时间对spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...

  4. day 49 Bootstrap框架和inconfont、font-awesome使用

    Bootstrap框架和inconfont.font-awesome使用   iconfont的使用:https://www.cnblogs.com/clschao/articles/10387580 ...

  5. 面试系列12 redis和memcached有什么区别

    (1)redis和memcached有啥区别 这个事儿吧,你可以比较出N多个区别来,但是我还是采取redis作者给出的几个比较吧 1)Redis支持服务器端的数据操作:Redis相比Memcached ...

  6. java_增强for循环

    增强for循环(foreach): 底层使用了迭代器,简化了迭代器的书写 JDK1.5新特性 所有的单列集合都可以使用增强for循环 for(集合/数组 的数据类型 变量名 : 集合名/数组名) pu ...

  7. import: not authorized `time' @ error/constitute.c/WriteImage/1028. import: not authorized `rospy' @ error/constitute.c/WriteImage/1028.

  8. 洛谷P5341 [TJOI2019]甲苯先生和大中锋的字符串

    原题链接P5341 [TJOI2019]甲苯先生和大中锋的字符串 题目描述 大中锋有一个长度为 n 的字符串,他只知道其中的一个子串是祖上传下来的宝藏的密码.但是由于字符串很长,大中锋很难将这些子串一 ...

  9. System.Web.Mvc.RedirectToRouteResult.cs

    ylbtech-System.Web.Mvc.RedirectToRouteResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutr ...

  10. Sharepoint常见概念

    有待补充: 1.环境部署(AD+DNS+SQL+SharePoint前端): SharePoint基本都是这样的结构,可以在多台服务器中,也就是场,当然也可以在一台服务器上.说说这几部分的功能 (1) ...