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

一堆人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. Flutter 相机定制

    Flutter中与硬件相关的部分,一直都挺蛋疼的.方案基本上有两种,自己写,或者等出相关的库. 最近做的一个项目中,需要对相机做定制.有过相关模块开发经验的,就知道这种需求并不简单,况且是这种跨平台解 ...

  2. 四则运算 Java 姚康友,黎扬乐

    github项目传送门:https://github.com/yaokangyou/arithmetic 项目要求 功能列表 [完成] 使用 -n 参数控制生成题目的个数 [完成] 使用 -r 参数控 ...

  3. 前端测试框架jest 简介

    转自: https://www.cnblogs.com/Wolfmanlq/p/8012847.html 作者:Ken Wang 出处:http://www.cnblogs.com/Wolfmanlq ...

  4. sqlserver 2017 docker安装(启动代理)

    从 Docker Hub 中拉出 SQL Server 2017 Linux 容器映像. docker pull microsoft/mssql-server-linux:2017-latest 运行 ...

  5. 关于SQL Server将一列的多行内容拼接成一行,合并显示在另外表中

    select '['+title_a+','+title_b +']' from A   for xml path('') SELECT *, (select '['+title_a+','+titl ...

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

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

  7. VMware导入OVF时报错(未能部署OVF包用户取消了任务的解决办法)

    阅读目录: 1.问题 2.原因 3.解决方案 问题:部署OVF模版的时候报错“用户取消了任务” 原因:导出ovf模板时,虚拟CD-ROM的选项要选[客户端设备],否则导入时报错“用户取消了任务” 解决 ...

  8. Hadoop2.7.6_03_HDFS原理

    1. HDFS前言 l  设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l  在大数据系统中作用: 为各类分布式运算框架(如:m ...

  9. python基础 - 字符串作

    split(sep=None, maxsplip=-1) 从左到右 sep 指定分隔字符串,缺省情况下空白字符串,指定的字符串会被切掉 maxsplit 指定分隔次数,-1 表示遍历 rsplit(s ...

  10. socket.io+angular.js+express.js做个聊天应用(三)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/www19940501a/article/details/27590611 接着前面博客文章socke ...