NOIP2016 模拟赛
7.10
T1:求出一个矩阵中平均数大于0的子矩阵的最大面积.
T2:给出一个N行的,第I行有n+1-i的倒三角形,从中选取m个数,只有当前数的左上角和右上角都被选是才能选当前数,求选的数字的最大和
T3:给一个有向无环图,求任意两点间距离除以边数的最小值.
Sol:
T1:n^2枚举行的两端,然后用处理出当前列的前缀和,只有Sum[i]-Sum[j]>0时j+1~i才满足要求 并且要求i-j最大.我们把它按照数值排序,注意Sum[0]也算,排序后从0扫到n就可以得到最小的Id值,每次更新最小的Id,和最长的距离就可以了.
T2:斜着进行DP,第一个斜行长度为n,第n个斜行长度为1,刷了改行个斜行长度为K,那么前一行长度要小于等于K+1。最后输出Max(F[n][0][m],F[n][1][m]) STD的做法奥妙重重.
T3.直接Floyd但是要记录边长的Floyd,暴力枚举就可以了.
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#define LL long long
using namespace std;
const LL Maxn=;
const LL Inf=(LL)<<;
LL a[Maxn][Maxn],Sum[Maxn][Maxn],n,m,Ans;
struct Node{LL v,id;}S[Maxn];
inline LL Max(LL x,LL y) {return x>y?x:y;}
inline LL Min(LL x,LL y) {return x>y?y:x;}
inline bool cmp(Node A,Node B)
{
if (A.v==B.v) return A.id>B.id;
return A.v<B.v;
}
int main()
{
scanf("%lld%lld",&n,&m);
for (LL i=;i<=n;i++)
{
Sum[i][]=;
for (LL j=;j<=m;j++) scanf("%lld",&a[i][j]),Sum[i][j]=Sum[i][j-]+a[i][j];
}
Ans=;
for (LL i=;i<=m;i++)
{ for (LL j=i;j<=m;j++)
{
S[].v=; S[].id=;
for (LL k=;k<=n;k++) S[k].v=S[k-].v+(Sum[k][j]-Sum[k][i-]),S[k].id=k;
sort(S,S+n+,cmp); LL Mx=,Mn=Inf;
for (LL k=;k<=n;k++)
{
Mn=Min(Mn,S[k].id);
Mx=Max(Mx,S[k].id-Mn);
}
Ans=Max(Ans,Mx*(j-i+));
}
}
printf("%lld\n",Ans);
return ;
}
T1
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[][],Sum[][],F[][][],n,m;
inline int Max(int x,int y) {return x>y?x:y;}
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
for (int j=;j<=n-i+;j++) scanf("%d",&a[i][j]);
for (int i=;i<=n;i++)
for (int j=;j<=n-i+;j++) Sum[j][i]=Sum[j-][i]+a[j][i]; for (int i=;i<=n;i++)
for (int j=;j<=n-i+;j++)
for (int k=;k<=j+;k++)
for (int s=j;s<=m;s++)
F[i][j][s]=Max(F[i][j][s],F[i-][k][s-j]+Sum[j][i]); printf("%d\n",Max(F[n][][m],F[n][][m]));
return ;
}
T2
#include <cstdio>
const int Inf=0x3f3f3f3f;
int F[][][],n,m,q,u,v,w,G[][];
inline int Min(int x,int y) {return x>y?y:x;}
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int k=;k<=n;k++) F[i][j][k]=Inf;
for (int i=;i<=n;i++) F[i][i][]=;
for (int i=;i<=m;i++)
scanf("%d%d%d",&u,&v,&w),F[u][v][]=Min(F[u][v][],w); for (int k=;k<=n;k++)
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int p=;p<=n;p++)
F[i][j][p]=Min(F[i][j][p],F[i][k][p-]+F[k][j][]);
scanf("%d",&q);
for (int i=;i<=q;i++)
{
scanf("%d%d",&u,&v); double Ans=(double)Inf;
if (G[u][v]!=) Ans=G[u][v]; else
{
for (int j=;j<=n;j++)
if (F[u][v][j]<Inf && ((double)(F[u][v][j])/(double)(j))<Ans) Ans=((double)(F[u][v][j])/(double)(j));
}
G[u][v]=Ans;
if (Ans>=Inf) puts("OMG!"); else printf("%0.3lf\n",Ans);
}
return ;
}
T3
7.11
T1. 注意到我们并不需要求出具体的周期是多少。
如果
NOIP2016 模拟赛的更多相关文章
- 串门赛: NOIP2016模拟赛——By Marvolo 丢脸记
前几天liu_runda来机房颓废,顺便扔给我们一个网址,说这上面有模拟赛,让我们感兴趣的去打一打.一开始还是没打算去看一下的,但是听std说好多人都打,想了一下,还是打一打吧,打着玩,然后就丢脸了. ...
- 学军NOIP2016模拟赛1
GTMD这么水的一套题没有AK T1:妥妥的二分答案,贪心check. T2:问题可以转化为最长上升(还是下降我记不住了)子序列. T3:发现点被覆盖上的顺序是一定的.求出这个顺序,第一个操作在线段树 ...
- NOIP2016模拟赛三 Problem B: 神奇的树
题面 Description 有一棵神奇的树.这棵树有N个节点,在每个节点上都有宝藏,每个宝藏价值V[i]金币:对于每条边,每经过一次都要花费C[i]金币. 值得注意的是,每个宝藏只能领取一次(也可以 ...
- NOIP2016模拟赛三 Problem C: 不虚就是要AK
题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio ...
- 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)
NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 纸牌 杯具 辣鸡 英文题目与子目录名 cards cups spicychicken 可执行文件名 cards cups ...
- 4.28 QBXT模拟赛
NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 迷妹 膜拜 换数游戏 英文题目与子目录名 fans mod game 可执行文件名 fans mod game 输入文件名 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
随机推荐
- UEditor手动调节其宽度
其高度一般不考虑,给个初始高度,然后任其自动扩展就行,对于其宽度,有两种思路,一种是调节其所在的DIV的宽度,让其自动填充,另一种是直接调节编辑器的宽度: adjust_editor_size: fu ...
- b/s 读取多个FTP文件(图片,视频)压缩到服务器 下载到客户端
其实需求是这样, 要做一键导出, 有图片,有照片,youhtml,存在不同的文件夹,每次下载都必须下载最新数据,因为FTP是随时更新的. 1.这要是一直下载下载,浏览器一直跳窗口,蛋疼的我都看不下去. ...
- uiscrollView UINavigation和uitabbar添加约束的问题
首先是层次问题, 我的storyboard中 底层是一个View(viewcontroller自带)上面添加了一个UIScrollview(添加约束, 上下左右全为0), 在UIScrollview上 ...
- CSSOM视图模式(CSSOM View Module)相关整理:scrollWidth,scrollLeft,offsetLeft,clientX ,offsetX 定义和区别
转:http://www.zhangxinxu.com/wordpress/2011/09/cssom%E8%A7%86%E5%9B%BE%E6%A8%A1%E5%BC%8Fcssom-view-mo ...
- 2、Runtime Area Data
这个也分为两大部分 1.是线程共享区域 ·线程共享区域又包括两部分Heap(堆)和方法区(Perm) 2.是线程独享区域 这个也包括两大部分程序计数器和栈 栈(又包括两部分:VM 栈和本地方法栈)
- 008-Scala主构造器、私有构造器、构造器重载实战详解
008-Scala主构造器.私有构造器.构造器重载实战详解 Scala主构造器实战 无参数的主构造器 分析 1.name 需要赋初值,一般通过占位符来代表空值 2.private 声明私有的age 生 ...
- Puppet安装及部署
本篇博客主要介绍Puppet的安装部署,后续会更新其他相关内容 一.简介 二.环境介绍 三.安装Puppet 四.配置Puppet-dashboard 五.配置Puppet Kick 一.简介 Pup ...
- 简单几句话总结Unicode,UTF-8和UTF-16
概念 先说一说基本的概念,这包括什么是Unicode,什么是UTF-8,什么是UTF-16. Unicode,UTF-8,UTF-16完整的说明请参考Wiki(Unicode,UTF-8,UTF-16 ...
- Dapper学习笔记(2)-链接引用
在研究Dapper源码时发现Dapper NET45类库中的SqlMapper.cs文件前面有个蓝色的箭头图标,发现在Dapper NET45文件夹下根本不存在SqlMapper.cs文件,其文件属性 ...
- nim也玩一行流,nim版的list comprehension
nim 是一门风格类似python的静态编译型语言,官方网站:http://nim-lang.org 如果你想折腾nim的编辑环境,可以用sublime text3 +插件nimlime,notepa ...