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. 428.x的n次幂

    实现 pow(x,n) 不用担心精度,当答案和标准输出差绝对值小于1e-3时都算正确 样例 Pow(2.1, 3) = 9.261 Pow(0, 1) = 0 Pow(1, 0) = 1 挑战 O(l ...

  2. Day 3-6 生成器&迭代器

    ---恢复内容开始--- 列表生成式: list = [i*i for i in range(20)] # 这就是一个列表生成式 print(list) # [0, 1, 4, 9, 16, 25, ...

  3. python语法糖/装饰器

    1.python高阶函数和嵌套函数 1.1高阶函数 def func1(x): return x**2 def func2(x): return x**3 def func(x,y): return ...

  4. css元素选择器

    css的元素选择器就是html的标签名:

  5. 三、oneinstack

    一.介绍 oneinstack https://www.cnblogs.com/lxwphp/p/9231554.html

  6. 使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

    使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

  7. WebAPI和WebService的区别

    WebAPI和WebService的区别 WebAPI用的是http协议,WebService用的是soap协议 WebAPI无状态,相对WebService更轻量级.WebAPI支持如get,pos ...

  8. Oracle查看表空间,创建表空间

    查看表空间: SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM ...

  9. BZOJ3230 相似子串 【后缀数组】

    题目分析: 容易想到sa排好序之后,子串排名就是前面的子串减去height数组.所以正着做一遍,倒着做一遍就行了. 代码: #include<bits/stdc++.h> using na ...

  10. springMVC整理03--处理数据模型 & 试图解析器 & @ResponseBody & HttpEntity

    1.处理模型数据 SpringMVC 中的模型数据是非常重要的,因为 MVC 中的控制(C)请求处理业务逻辑来生成数据模型(M),而视图(V)就是为了渲染数据模型的数据.当有一个查询的请求,控制器(C ...