这次难道就是传说中的标准分大赛?而且这次比赛的链接不翼而飞

一堆人153pts然后就有Rank4?看来这个Rank4不值钱了,才涨了50+的Rating。

不过还好最后5min的时候想出了T1正解,否则就会因为少10pts被爆踩了吧

好了开始讲题。

T1

这其实是题,我们很容易想到DP:

令\(f_{i,j}\)表示前\(i\)个数中有i个数选择正数时的最小价值和,则有转移:

\(f_{i,j}=min(f_{i-1,j-1}+min(a_{i,0},a_{i,1}),f_{i-1,j}-max(a_{i,0},a_{i,1}))\)

其中\(a_{i,0},a_{i,1}\)表示这张纸牌正反面的数字

这里贪心的技巧还是很好想到的,如果是正数的纸牌就让小的一个数露出,负数的纸牌就让大的一个数露出

然后滚动优化一下即可得到90pts

但是正解其实要简单很多,这也是很好YY的

然后我们现在先假设没有负数这一条件,所以我们总是选择每一对\(min(a_{i,0},a_{i,1})\)来朝上。

但是由于我们有放在负数位置的权利,所以我们可以让一些数变成\(-max(a_{i,0},a_{i,1})\)朝上

然后我们看一下对于从\(min(a_{i,0},a_{i,1})\)变到\(-max(a_{i,0},a_{i,1})\)d的时候,相当于把值减少了:

\(min(a_{i,0},a_{i,1})-(-max(a_{i,0},a_{i,1}))=min(a_{i,0},a_{i,1})+max(a_{i,0},a_{i,1})=a_{i,0},a_{i,1}\)

所以我们对于所有的数按照\(a_{i,0},a_{i,1}\)从大到小排序,然后前面的一些数就放在负数位置了

然后就轻松切掉了

CODE

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100005;
struct data
{
int x,y;
}a[N];
int n,ans;
inline char tc(void)
{
static char fl[100000],*A=fl,*B=fl;
return A==B&&(B=(A=fl)+fread(fl,1,100000,stdin),A==B)?EOF:*A++;
}
inline void read(int &x)
{
x=0; char ch=tc(); int flag=1;
while (ch<'0'||ch>'9') { if (ch=='-') flag=-1; ch=tc(); }
while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=tc(); x*=flag;
}
inline int min(int a,int b)
{
return a<b?a:b;
}
inline int max(int a,int b)
{
return a>b?a:b;
}
inline bool comp(data a,data b)
{
return a.x+a.y>b.x+b.y;
}
int main()
{
//freopen("A.in","r",stdin); freopen("A_.out","w",stdout);
register int i; read(n);
for (i=1;i<=n;++i)
read(a[i].x),read(a[i].y);
sort(a+1,a+n+1,comp);
for (i=1;i<=n>>1;++i)
ans-=max(a[i].x,a[i].y);
for (i=(n>>1)+1;i<=n;++i)
ans+=min(a[i].x,a[i].y);
printf("%d",ans);
return 0;
}

T2

这道题还是比较难搞的。

刚开始考虑悬线法,发现没什么用就直接上了DP。

令\(f_{i,j}\)表示以\(a_{i,j}\)为右下角的正方形的边长为多少,然后我们要求的就是:

\(\sum_{i=1}^n\sum_{j=1}^m\ f_{i,j}(if\ there\ is\ not\ a\ furniture\ on\ a_{i,j})\)

然后我们可以预处理\(l_{i,j},h_{i,j}\)分别表示\(a_{i,j}\)的左边和上面分别最多有多少个格子没有家具

然后则有\(f_{i,j}=min(f_{i-1,j-1}+1,min(l_{i,j},h_{i,j}))\)

特别的如果\(a_{i,j}\)上是家具,那么\(f_{i,j}=-1\)。这个主要是为了抵消对DP方程的影响,使\(f_{I+1,j+1}=0\)

然后\(O(n^2)\)转移即可

然后优化的话就是在\(b\)个点之间转移一下但是我真的不会啊

53ptsCODE

#include<cstdio>
#include<cstring>
using namespace std;
const int N=1005;
int a[N][N],l[N][N],h[N][N],f[N][N],n,m,b,x,y;
long long ans;
inline char tc(void)
{
static char fl[100000],*A=fl,*B=fl;
return A==B&&(B=(A=fl)+fread(fl,1,100000,stdin),A==B)?EOF:*A++;
}
inline void read(int &x)
{
x=0; char ch=tc();
while (ch<'0'||ch>'9') ch=tc();
while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=tc();
}
inline int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
//freopen("B.in","r",stdin); freopen("B.out","w",stdout);
register int i,j;
read(n); read(m); read(b);
for (i=1;i<=b;++i)
read(x),read(y),a[x][y]=1;
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
{
if (i^1) h[i][j]=a[i-1][j]?0:h[i-1][j]+1;
if (j^1) l[i][j]=a[i][j-1]?0:l[i][j-1]+1;
}
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
if (!a[i][j])
{
f[i][j]=min(f[i-1][j-1]+1,min(l[i][j],h[i][j]));
ans+=f[i][j];
} else f[i][j]=-1;
printf("%lld",ans);
return 0;
}

T3

这道题超级不可做,全场无人写出,集体爆零

大概是一道平面几何+树形DP的题目,也是很不可做的

而且这道题,莫名奇妙地没有开放

然后又是留坑了

EZ 2018 05 26 NOIP2018 模拟赛(十六)的更多相关文章

  1. EZ 2018 05 20 NOIP2018 模拟赛(十五)

    这次的比赛充满着玄学的气息,玄学链接 首先讲一下为什么没有第十四场 其实今天早上9点时看到题目就叫了:原题! 没错,整套试卷都做过,我还写了题解 然后老叶就说换一套,但如果仅仅是这样就没什么 但等13 ...

  2. EZ 2018 05 04 NOIP2018 模拟赛(十二)

    这次的试卷应该是激励我们一下的,链接 然后大家的分数就都很高,然后我就210被一群秒A T2的240大佬爆踩 掉了5rating但Rank竟然发杀了 X_o_r dalao && YZ ...

  3. EZ 2018 05 13 NOIP2018 模拟赛(十三)

    这次的比赛真心水,考时估分240,然后各种悠闲乱逛 然后测完T1数组开小了炸成40,T2,T3都没开long long,T2炸成20,T3爆0 掉回1600+的深渊,但是还有CJJ dalao比我更惨 ...

  4. EZ 2018 05 01 NOIP2018 模拟赛(十一)

    莫名其妙暴涨Rating 其实题目都挺好挺简单的,但是越简单就越容易ZZ 不理解问什么第一题这么多人找环 不过T2是真心细节题,T3太难了 题目戳这里 T1 仔细分析题意发现那个交换规则就是废话,如果 ...

  5. EZ 2018 02 26 NOIP2018 模拟赛(一)

    这次是校内OJ(HHHOJ)线上比赛,网址:http://211.140.156.254:2333/contest/51 (我去刚刚快写完了手贱关掉了) 这次总体难度也不高,T1&&T ...

  6. EZ 2018 03 30 NOIP2018 模拟赛(六)

    链接:http://211.140.156.254:2333/contest/67 转眼间上次加回来的Rating又掉完了. 这次不知为何特别水,T1想了一段时间没想出来弃了,导致后面心态炸了. T2 ...

  7. EZ 2018 06 17 NOIP2018 模拟赛(十九)

    这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...

  8. EZ 2018 06 10 NOIP2018 模拟赛(十八)

    好久没写blog&&比赛题解了,最近补一下 这次还是很狗的,T3想了很久最后竟然连并查集都忘写了,然后T2map莫名爆炸. Rating爆减......链接不解释 好了我们开始看题. ...

  9. EZ 2018 06 24 NOIP2018 模拟赛(二十)

    很久之前写的一套题了,由于今天的时间太多了,所以记起来就写掉算了. 这一场尽管T2写炸了,但也莫名Rank4涨了Rating.不过还是自己太菜. A. 环游世界 首先我们先排个序,想一下如果不用走回来 ...

随机推荐

  1. Application.Current的使用

    来源 http://www.cnblogs.com/symons/archive/2010/03/15/1686200.html Application.Current的使用 WPF程序对应一个App ...

  2. 二. Redis 安全性

    由于Redis速度相当快,当一台服务器比较好的时候,一个外部用户可以在一秒钟内进行150K(15万)次的密码尝试,因此意味着你需要设置一个非常非常强大的密码来防止暴力破解. 1.设置密码 (1). 通 ...

  3. 聊聊setTimeout和setInterval线程

    在聊setTimeout和setInterval这两个事件的前,先聊另外一个与之密切关联的知识点,那就是线程(thread).而线程有常常跟另外一个词语--“进程”一起出现.那么何为线程?何为线程呢? ...

  4. Linux的命名空间详解--Linux进程的管理与调度(二)【转】

    Linux Namespaces机制提供一种资源隔离方案. PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace.每个Namespace里面的资源对其他Namesp ...

  5. CRM lookup筛选

    function Loadcouse() { var type; var id; retrieveRecord(Xrm.Page.getAttribute("ownerid").g ...

  6. U盘内容被病毒隐藏的解决办法(亲测可用)

    前几天用U盘的时候不小心感染上了病毒,用自己的电脑打开后里面只剩下一个U盘的快捷方式,选中显示隐藏文件之后依然没有任何显示,但是查看U盘的属性的时候可以看到,U盘已经使用了300多M,所以就上网查了一 ...

  7. AD域自定义属性《完整》

    1.安装Active Directory 架构,下载:adminpak.msi安装. 2.以管理员运行cmd,执行:regsvr32 schmmgmt.dll(该命令将在计算机上注册“schmmgmt ...

  8. php把阿拉伯数字转为银行数字大写

    php把阿拉伯数字转为银行数字大写 前言:之前在做一个外贸公司的询报价系统时用到了记录关于金额的数据,一般阿拉伯数字都需要转为银行使用的大写数字,在这简单记录一下 /* * 数字金额转换成中文大写金额 ...

  9. WCF REST模式下的UriTemplate路径问题

    问题:在WCF4.0中,用UriTemplate进行表明路径参数的时候会出现问题 1.创建的项目是Service.Interface[4.0]和Service[4.0]还有Client[4.0] 2. ...

  10. Lua与C交互之基础操作(1)

    @(语言) Lua是一个嵌入式的语言,可以Lua可以作为程序库用来扩展应用的功能,也可以注册有其他语言实现的函数,这些函数可能由C语言(或其他语言)实现,可以增加一些不容易由Lua实现的功能.这就是L ...