2019.4.1考试&2019.4.2考试&2019.4.4考试
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考试的更多相关文章
- Kali Linux 2019.4发布了!解决Kali Linux 2019.4中文乱码问题
2019年11月26日,kali Linux官网发布了Kali Linux 2019.4发行版,此版本做了很大的改动,界面焕然一新. Kali Linux 2019.4涉及到的一些新更新内容包括: 新 ...
- DevExpress 2019 .NET产品现已完全支持Visual Studio 2019
[DevExpress v18.2.8最新版免费下载] 我们非常高兴地跟宣布DevExpress .NET产品现已完全支持Visual Studio 2019.如果您是DevExpress忠实用户,可 ...
- IntelliJ IDEA 2019.3 代码提示忽略大小写(IDEA 2019版本如何设置代码提示不分大小写?)
最近在使用IDEA,发现每次只能进行完全匹配,且区分大小写,界面变了IDEA 2019.3 忽略大小写设置跟之前的版本稍微有点不同,跟之前的软件有点点区别,在此记录一下不区分大小写的方法. 1. 使用 ...
- intellji IDEA 2019版激活码(亲测可用 2019年10月14日08:53:54)
MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6I ...
- Python全国二级等级考试(2019)
一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...
- 2019.3.28&2019.3.30考试
2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...
- 2019年计算机技术与软件专业技术资格(水平)考试安排v
根据<关于2019年度专业技术人员资格考试计划及有关问题的通知>(人社厅发[2018]142号)要求,2019年度计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)安排 ...
- Python全国二级等级考试(2019)
一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...
- 全国计算机等级考试二级Python语言程序设计考试大纲
全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...
- PAT甲级满分攻略|记一次考试经历
一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很 ...
随机推荐
- MySqlHelper的封装
其实MySqlHelper和SqlHelper是一样的,只是使用的驱动不一样而已. public class MySQLHelper { public static final String url ...
- servlet中将值以json格式传入
详细连接https://blog.csdn.net/e_wsq/article/details/71038270$('#but_json_json').click(function(){ }; $.a ...
- Mybaits整合Spring
整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代理形 ...
- 每日一小时linux(1)--sysRq
参考https://www.ibm.com/developerworks/cn/linux/l-cn-sysrq/index.html SysRq 是什么 你是否遇到服务器不能通过 SSH 登录,也不 ...
- query中对应的OnSetText和onGetText事件
今天在看代码的时候遇到一个问题,query中的某个字段和在表中显示的不是一个值,我觉得很奇怪,于是找了很久,才知道为什么,原来是query中的OnSetText和onGetText事件在作怪,经过一番 ...
- poj2100(尺取法)
题意:选取一系列数,使得这些数的平方和等于n: 解题思路:尺取法扫一遍: #include<iostream> #include<algorithm> using namesp ...
- bzoj2762-[JLOI2011]不等式组
求 \(x=k\) 时满足一元一次不等式 \(ax+b<c\) 的个数. 解出 \(\frac{c-b}{a}\) 之后取整,得到合法区间,用树状数组维护. 注意 \(a\) 的值域是 \([- ...
- UVA 12171 Sculpture
https://vjudge.net/problem/UVA-12171 题目 某人设计雕塑,用的是很扯的方法:把一堆长方体拼起来.给出长方体的坐标和长宽高,求外表面积.因为要将这雕塑进行酸洗,需要知 ...
- css溢出显示省略号
单行溢出省略号 .show-detail li .info-name { width:278px; display:inline-block; /*下面是重点*/ overflow: hidden; ...
- [51Nod 1584] 加权约数和
Description 在整理以前的试题时,他发现了这样一道题目:"求 \(\sum\sigma(i)\),其中 \(1≤i≤N\),\(σ(i)\) 表示 \(i\) 的约数之和.&quo ...