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 边界 ...
随机推荐
- JS 面向对象、prototype原型的克隆
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- Asp.net MVC过滤器的使用
当我们网站开发到这里的时候,我们虽然已经实现了用户登录信息,用户不经过登录信息,比如:http://localhost:6941/UserInfo/Index如果我这样访问的话,他是可以进行操作的,所 ...
- CentOS_7.2安装MySQL_5.7
一.安装依赖包和开发工具: yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* ...
- NoSQL生态系统——类似Bigtable列存储,或者Dynamo的key存储(kv存储如BDB,结构化存储如redis,文档存储如mongoDB)
摘自:http://www.ituring.com.cn/article/4002# NoSQL系统的数据操作接口应该是非SQL类型的.但在NoSQL社区,NoSQL被赋予了更具有包容性的含义,其意为 ...
- java Resource
ClassPathResource: String resource = ""; //相对路径 Resource resource = new ClassPathResource( ...
- 利用innodb_force_recovery 解决WAMP MySQL服务器无法正常启动的问题
有次公司突然断电,导致wamp mysql无法重启 二 分析 初步估计是mysql日志损坏问题,从日志内容分析来看,数据库在机器crash 导致日志文件损坏,重启之后无法正常恢复,更无法正常对外 ...
- zabbix-agent配置文件说明
zabbix-agent配置文件:/etc/zabbix/zabbix_agentd.conf Server=zabbix server IP,网关IP hostname=本机IP ServerAct ...
- C#.NET微信公众账号接口开发系列文章整理--微信接口开发目录,方便需要的博友查询
前言: 涉及微信接口开发比较早也做的挺多的,有时间的时候整理了开发过程中一些思路案例,供刚学习微信开发的朋友参考.其实微信接口开发还是比较简单的,但是由于调试比较麻烦,加上微信偶尔也会给开发者挖坑,并 ...
- 查询数据库表大小sql
SELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE (a.type = ' ...
- 如何解决前端传来的时间格式与mysql表中时间格式不匹配的查询问题
前端传过来的时间格式为“2016-07-11 11:13:10”,而数据表中对应字段`add_time`的格式为“2016-7-11”,此时sql不能直接用 "where `add_time ...