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. hdu2089_不要62

    不要62 题目大意:给你一个区间,算出该区间里不含62或4的数的个数 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 /* // 暴力就可以过了 ...

  2. 校园电商项目2(基于SSM)——模块设计

    步骤一:各模块职责 步骤二:实体类设计 package com.figsprite.o2o.bean; import java.util.Date; public class Area { priva ...

  3. Spring Boot(1)——开发你的第一款Spring Boot应用(Edition1)

    Spring Boot(1)——开发你的第一款Spring Boot应用(Edition1) 准备工作: java:java 8 或者 java 9: Spring框架:5.0.8.RELEASE或以 ...

  4. CodeForces 126B Password

    题目链接:http://codeforces.com/problemset/problem/126/B 题目大意: 多组数据每组给定1个字符串S,问是否存在S的一个尽量长的子串,同时是S的前缀和后缀, ...

  5. scrapy全站爬取拉勾网及CrawSpider介绍

    一.指定模板创建爬虫文件 命令 创建成功后的模板,把http改为https 二.CrawSpider源码介绍 1.官网介绍: 这是用于抓取常规网站的最常用的蜘蛛,因为它通过定义一组规则为跟踪链接提供了 ...

  6. js splice vs slice

    js splice vs slice https://stackoverflow.com/questions/37601282/javascript-array-splice-vs-slice htt ...

  7. mysql “Too many connections” 解决办法

    今天生产服务器上的MySQL出现了一个不算太陌生的错误“Too many connections”.平常碰到这个问题,我基本上是修改/etc/my.cnf的max_connections参数,然后重启 ...

  8. 四、docker compose

    docker compose可以方便我们快捷高效地管理容器的启动.停止以及重启等操作,和批量管理容器,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什 ...

  9. Spring Boot 构建电商基础秒杀项目 (六) 用户登陆

    SpringBoot构建电商基础秒杀项目 学习笔记 userDOMapper.xml 添加 <select id="selectByTelphone" resultMap=& ...

  10. How to write to an event log by using Visual C#

    using System; using System.Diagnostics; namespace WriteToAnEventLog_csharp { /// Summary description ...