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 边界 ...
随机推荐
- find / -type f -name "*fetion*" |xargs rm -rf {}\
find / -type f -name "*fetion*" |xargs rm -rf {}\
- 51nod1265 四点共面
题目链接:51nod 1265 四点共面 四个点构成的三个向量a,b,c共面的充要条件是存在不全为零的实数x,y,z满足x*a+y*b+z*c=0,然后想到线代了.. 其实就是三个向量的混合积为0:( ...
- mysql 5.7配置文件参数详解
read_buffer_size 默认大小:128KB 最大:2GB 最小:8KB 增量:必须为4KB的整数倍,如果配置的不是整数倍,会向下取整 用途: 1.MyISAM表顺序扫描提供的缓存 2.所有 ...
- react参考项目001
https://github.com/chen2009277025/webpack-ant-design-demo https://github.com/cobish/cobish.github.io ...
- 网站整体架构去Windows化
数据层放弃SQL Server数据库和存储过程,全部迁移到Linux平台上的MySQL数据库上: 缓存不再依赖.net自身提供的缓存机制,迁移到部署在Linux平台上的分布式的Redis上: 服务之间 ...
- js动画之同时运动
一个物体可以同时做多个运动,而不是完成一个运动再一个运动,而是让你感觉他们是同时发生的. 直接上代码 <!DOCTYPE html> <html lang="en" ...
- ie8 window.open导出文件报错
js创建一个<a>元素hiddenElementhiddenElement.setAttribute('href','')hiddenElement.setAttribute('targe ...
- leetcode日记 Combination sum IV
题目: Given an integer array with all positive numbers and no duplicates, find the number of possible ...
- RHEL6 --部署phpMyAdmin与论坛系统
一.rpm安装LAMP平台部署phpMyAdmin 二.搭建wordpress个人博客系统 三.搭建论坛系统 一.rpm安装LAMP平台及部署phpMyAdmin 1.phpMyAdmin简介及获取方 ...
- [网络技术][转]网卡的offload概念
网络数据包分析 网卡Offload 对于网络安全来说,网络传输数据包的捕获和分析是个基础工作,绿盟科技研究员在日常工作中,经常会捕获到一些大小远大于MTU值的数据包,经过分析这些大包的特性,发现和网卡 ...