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. [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告

    Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...

  2. js尾递归函数

    普通递归: function fac(n) { if (n === 1) return 1; return n * fac(n - 1); } fac(5) // 120 这是个阶乘.但是占用内存,因 ...

  3. Netty ByteBuf和Nio ByteBuffer

    参考https://blog.csdn.net/jeffleo/article/details/69230112 一.简介 Netty中引入了ByteBuf,它相对于ByteBuffer来说,带来了很 ...

  4. 如何建立一个WCF服务并将其发布到IIS上

    在我们的软件开发中,经常会连接到数据库中,如果是常规的操作,我们经常会将连接数据库的字符串写在配置文件中,然后去读取数据库的连接字符串,其实这种方式是非常不科学的,这会直接暴露我们的数据库,直接暴露我 ...

  5. linux 挂载windows下目录,其它linux机器nfs的目录,自己dd的文件

    如有转载,不胜荣幸.http://www.cnblogs.com/aaron-agu/ 挂载window下共享的目录 //192.168.0.11/share /mnt 挂载其它linux机器下目录 ...

  6. WhiteHat Contest 11 : re1-100

    ELF文件,运行一下是要求输密码 die查了一下无壳 直接拖入ida 可以发现 这是它的判断函数 也就是说输入的总长度是42位第一个字符是123也就是0x7b 也就是'{'然后10位是"53 ...

  7. 解决Safari页面缓存的问题

    在开发一个移动应用的过程中,遇到问题:在订单确认页,用户点击 收货地址链接,跳转到地址选择页面,咋选一个地址,跳转回订单确认页,发现收货地址没有改变,还是最开始的地址. 用Android手机发现地址有 ...

  8. Lodop打印设计里的 打印项对齐

    打印设计界面里,有四个对齐的图标:(1)第一个图标是左右对齐方式,该图标下有四种左右对齐方式.(2)第二个图标是上下对齐方式,该图标下有四种上下对齐方式.(3)第三个图标是等宽对齐,该图标下有三种等宽 ...

  9. faster rcnn讲解很细

    https://blog.csdn.net/bailufeiyan/article/details/50749694 https://www.cnblogs.com/dudumiaomiao/p/65 ...

  10. codevs2822

    解题思路: tarjan缩点后算出度为0的点有几个,如果只有一个且这个点为爱心天使就行了: #include<iostream> #include<algorithm> #in ...