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 模拟赛的更多相关文章

  1. 串门赛: NOIP2016模拟赛——By Marvolo 丢脸记

    前几天liu_runda来机房颓废,顺便扔给我们一个网址,说这上面有模拟赛,让我们感兴趣的去打一打.一开始还是没打算去看一下的,但是听std说好多人都打,想了一下,还是打一打吧,打着玩,然后就丢脸了. ...

  2. 学军NOIP2016模拟赛1

    GTMD这么水的一套题没有AK T1:妥妥的二分答案,贪心check. T2:问题可以转化为最长上升(还是下降我记不住了)子序列. T3:发现点被覆盖上的顺序是一定的.求出这个顺序,第一个操作在线段树 ...

  3. NOIP2016模拟赛三 Problem B: 神奇的树

    题面 Description 有一棵神奇的树.这棵树有N个节点,在每个节点上都有宝藏,每个宝藏价值V[i]金币:对于每条边,每经过一次都要花费C[i]金币. 值得注意的是,每个宝藏只能领取一次(也可以 ...

  4. NOIP2016模拟赛三 Problem C: 不虚就是要AK

    题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio ...

  5. 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)

    NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 纸牌 杯具 辣鸡 英文题目与子目录名 cards cups spicychicken 可执行文件名 cards cups ...

  6. 4.28 QBXT模拟赛

    NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 迷妹 膜拜 换数游戏 英文题目与子目录名 fans mod game 可执行文件名 fans mod game 输入文件名 ...

  7. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  8. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  9. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

随机推荐

  1. find / -type f -name "*fetion*" |xargs rm -rf {}\

    find / -type f -name "*fetion*" |xargs rm -rf {}\

  2. 51nod1265 四点共面

    题目链接:51nod 1265 四点共面 四个点构成的三个向量a,b,c共面的充要条件是存在不全为零的实数x,y,z满足x*a+y*b+z*c=0,然后想到线代了.. 其实就是三个向量的混合积为0:( ...

  3. mysql 5.7配置文件参数详解

    read_buffer_size 默认大小:128KB 最大:2GB 最小:8KB 增量:必须为4KB的整数倍,如果配置的不是整数倍,会向下取整 用途: 1.MyISAM表顺序扫描提供的缓存 2.所有 ...

  4. react参考项目001

    https://github.com/chen2009277025/webpack-ant-design-demo https://github.com/cobish/cobish.github.io ...

  5. 网站整体架构去Windows化

    数据层放弃SQL Server数据库和存储过程,全部迁移到Linux平台上的MySQL数据库上: 缓存不再依赖.net自身提供的缓存机制,迁移到部署在Linux平台上的分布式的Redis上: 服务之间 ...

  6. js动画之同时运动

    一个物体可以同时做多个运动,而不是完成一个运动再一个运动,而是让你感觉他们是同时发生的. 直接上代码 <!DOCTYPE html> <html lang="en" ...

  7. ie8 window.open导出文件报错

    js创建一个<a>元素hiddenElementhiddenElement.setAttribute('href','')hiddenElement.setAttribute('targe ...

  8. leetcode日记 Combination sum IV

    题目: Given an integer array with all positive numbers and no duplicates, find the number of possible ...

  9. RHEL6 --部署phpMyAdmin与论坛系统

    一.rpm安装LAMP平台部署phpMyAdmin 二.搭建wordpress个人博客系统 三.搭建论坛系统 一.rpm安装LAMP平台及部署phpMyAdmin 1.phpMyAdmin简介及获取方 ...

  10. [网络技术][转]网卡的offload概念

    网络数据包分析 网卡Offload 对于网络安全来说,网络传输数据包的捕获和分析是个基础工作,绿盟科技研究员在日常工作中,经常会捕获到一些大小远大于MTU值的数据包,经过分析这些大包的特性,发现和网卡 ...