4.1:T1原题,T2码农板子题,T3板子题

4.2

好像是三个出题人分别出的

以及#define *** 傻逼

T1

思维好题

转成树形DP,$dp[i][j]$表示点i值为j的方案数,记录前缀和转移

 #include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,Maxn=,mod=;
int n,rt,cnt,p[N],noww[N],goal[N],deg[N];
int dp[N][Maxn+],dwt[N],upt[N],var[N]; char s1[N],s2[N];
int Getnum(char *s)
{
int ret=;
for(int i=,l=strlen(s);i<l;i++)
ret=(ret<<)+(ret<<)+(s[i]^);
return ret;
}
void Link(int f,int t){noww[++cnt]=p[f],p[f]=cnt,goal[cnt]=t,deg[t]++;}
void Add(int &x,int y){x=(x+y>=mod)?(x+y-mod):(x+y);}
void Mul(int &x,int y){x=1ll*x*y%mod;}
void DFS(int nde)
{
for(int i=p[nde];i;i=noww[i]) DFS(goal[i]);
for(int i=dwt[nde];i<=upt[nde];i++)
{
dp[nde][i]=;
for(int j=p[nde],g;j;j=noww[j])
(var[g=goal[j]]==nde)?Mul(dp[nde][i],dp[g][Maxn]-dp[g][i-]+mod):Mul(dp[nde][i],dp[g][i]);
}
for(int i=;i<=Maxn;i++) Add(dp[nde][i],dp[nde][i-]);
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%s%s",s1,s2);
if(!isdigit(s1[]))
{
int x=Getnum(s2),ch=s1[]-'a'+;
dwt[i]=,upt[i]=x,Link(ch,i),var[i]=ch;
}
else if(!isdigit(s2[]))
{
int x=Getnum(s1),ch=s2[]-'a'+;
dwt[i]=x,upt[i]=Maxn,Link(ch,i);
}
else
dwt[i]=Getnum(s1),upt[i]=Getnum(s2);
}
int ans=;
for(int i=;i<=n;i++)
if(!deg[i]) DFS(i),Mul(ans,dp[i][Maxn]);
printf("%d\n",ans);
return ;
}

T2

单调栈干掉包含的情况,然后决策单调性

***造数据的写着1<=L,R<=1e6然后就开始造负数,于是快读挂了

代码是考场写的有点丑

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define Temp template<class T>
using namespace std;
const int N=; char BF[<<],*P1=BF,*P2=BF;
char Gc(){return (P1==P2&&(P2=(P1=BF)+fread(BF,,<<,stdin),P1==P2)?EOF:*P1++);}
void Fread(int &x)
{
x=; char ch=Gc();
while(!isdigit(ch)) ch=Gc();
while(isdigit(ch)) x=(x<<)+(x<<)+(ch^),ch=Gc();
} struct a
{
int l,r;
}arr[N],tmp[N];
bool operator < (a x,a y)
{
return x.l==y.l?x.r<y.r:x.l<y.l;
}
void Msort(int l,int r)
{
if(l>=r) return;
int mid=(l+r)>>;
Msort(l,mid),Msort(mid+,r);
int p=l,q=mid+,pq=l;
while(p<=mid&&q<=r)
tmp[pq++]=(arr[q]<arr[p])?arr[q++]:arr[p++];
while(p<=mid) tmp[pq++]=arr[p++];
while(q<=r) tmp[pq++]=arr[q++];
for(int i=l;i<=r;i++) arr[i]=tmp[i];
} int n,cnt,top,stk[N],ll[N],rr[N]; long long ans[N],anss;
inline void Maxi(long long &a,long long b){if(a<b) a=b;}
inline void Ins(int x){stk[++top]=x;}
inline long long Bina(int x)
{
int l=,r=top,ret=top;
while(l<=r)
{
int mid=(l+r)>>;
if(rr[stk[mid]]>=x)
l=mid+,ret=mid;
else
r=mid-;
}
return rr[stk[ret]]-ll[stk[ret]];
}
long long Calc(int an,int cn)
{
an=stk[an],cn=stk[cn];
return 1ll*(rr[cn]-ll[an])*(rr[an]-ll[cn]);
}
void Solve(int lp,int rp,int l,int r)
{
if(l>r) return;
if(lp==rp)
for(int i=l;i<=r;i++)
ans[i]=Calc(lp,i);
else
{
int mid=(l+r)>>; long long t;
int pt=lp,bo=lp,od=min(rp,mid-);
for(int i=bo;i<=od;i++)
if((t=Calc(i,mid))>ans[mid]) ans[mid]=t,pt=i;
if(l!=r) Solve(lp,pt,l,mid),Solve(pt,rp,mid+,r);
}
}
int main()
{
Fread(n);
register int i; int j,k;
for(i=;i<=n;i++)
Fread(j),Fread(k),arr[i]=(a){j,k};
Msort(,n);
for(i=;i<=n;i++)
ll[i]=arr[i].l,rr[i]=arr[i].r;
stk[top=]=;
for(i=;i<=n;i++)
rr[i]<=rr[stk[top]]?Maxi(anss,1ll*(rr[i]-ll[i])*Bina(rr[i])):Ins(i);
Solve(,top-,,top); long long asn=;
for(i=;i<=top;i++) Maxi(asn,ans[i]);
printf("%lld",max(asn,anss));
return ;
}

T3

出题人对自己认识还是很清楚的,果然是***人出***题

为什么这么说,可以看看下面的***出题人的题解:

(*直球辱骂*)

4.4

T1

自然数幂和能插出来,不提

把前缀和的a+id拆成a和id两部分,分别再插

总复杂度$O(k^2)$

T2

奇怪DP

把一个数分成三段,前面是一坨数,中间是一坨极长的连续9,最后是一个数

然后$dp[i][j][k]$表示前面一坨里最大的是i,中间j个9,最后是k

***DP(错乱

T3

先压成正常的Trie,建fail树,把询问挂在点上,树上差分,树状数组维护

(抽象

2019.4.1考试&2019.4.2考试&2019.4.4考试的更多相关文章

  1. Kali Linux 2019.4发布了!解决Kali Linux 2019.4中文乱码问题

    2019年11月26日,kali Linux官网发布了Kali Linux 2019.4发行版,此版本做了很大的改动,界面焕然一新. Kali Linux 2019.4涉及到的一些新更新内容包括: 新 ...

  2. DevExpress 2019 .NET产品现已完全支持Visual Studio 2019

    [DevExpress v18.2.8最新版免费下载] 我们非常高兴地跟宣布DevExpress .NET产品现已完全支持Visual Studio 2019.如果您是DevExpress忠实用户,可 ...

  3. IntelliJ IDEA 2019.3 代码提示忽略大小写(IDEA 2019版本如何设置代码提示不分大小写?)

    最近在使用IDEA,发现每次只能进行完全匹配,且区分大小写,界面变了IDEA 2019.3 忽略大小写设置跟之前的版本稍微有点不同,跟之前的软件有点点区别,在此记录一下不区分大小写的方法. 1. 使用 ...

  4. intellji IDEA 2019版激活码(亲测可用 2019年10月14日08:53:54)

    MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6I ...

  5. Python全国二级等级考试(2019)

    一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...

  6. 2019.3.28&2019.3.30考试

    2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...

  7. 2019年计算机技术与软件专业技术资格(水平)考试安排v

    根据<关于2019年度专业技术人员资格考试计划及有关问题的通知>(人社厅发[2018]142号)要求,2019年度计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)安排 ...

  8. Python全国二级等级考试(2019)

    一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...

  9. 全国计算机等级考试二级Python语言程序设计考试大纲

    全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...

  10. PAT甲级满分攻略|记一次考试经历

    一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很 ...

随机推荐

  1. MySqlHelper的封装

    其实MySqlHelper和SqlHelper是一样的,只是使用的驱动不一样而已. public class MySQLHelper { public static final String url ...

  2. Gevent 性能和 gevent.loop 的运用和带来的思考

    知乎自己在底层造了非常多的轮子,而且也在服务器部署方面和数据获取方面广泛使用 gevent 来提高并发获取数据的能力.现在开始我将结合实际使用与测试慢慢完善自己对 gevent 更全面的使用和扫盲. ...

  3. mysql 常用字段类型

    tinyint[(m)] [unsigned] [zerofill] 1字节 极小整数,数据类型用于保存一些范围的整数数值范围: 有符号: -128 - 127. 无符号: - 255 特别的: My ...

  4. 对于tomcat通过catalina.sh停止服务后,tomcat进程没有退出问题解决办法

    例:tomcat路径及名称为/data/apache-tomcat-7.0.67/ vim /data/apache-tomcat-7.0.67/bin/catalina.sh 找到org.apach ...

  5. spring boot 启动脚本

    启动的时候 在 boot_class 中有个:com.sankuai.qcs.regulation.shanghai.App  这是spring boot的配置,在 bin/run_main.sh中 ...

  6. placeholder解决兼容各种IE浏览器的方法

    <input id="search" type="text" class="box" class="inputText&qu ...

  7. vs code的快捷方式

    https://blog.csdn.net/qq_41308027/article/details/83178526

  8. JS--bom对象:borswer object model浏览器对象模型

    bom对象:borswer object model浏览器对象模型 navigator获取客户机的信息(浏览器的信息) navigator.appName;获得浏览器的名称 window:窗口对象 a ...

  9. Detected problems with API compatibility(visit g.co/dev/appcompat for more info)

    应用开启了debug模式导致Android 9提示如此,使用release模式即可解决.

  10. c++ string替换指定字符串

    string fnd = "dataset"; string rep = "labels"; string buf = "d:/data/datase ...