分析:这道题实在是不好想,一个可以骗分的想法是假定要求的那个点在中心点上,可以骗得不少分.但是在边上的点要怎么确定呢?理论复杂度O(﹢无穷).答案一定是和端点有关的,涉及到最大值最小,考虑二分最大值,关键就是怎么check.如果有一条边x,还有一个点y,把y到x上的点的距离>mid的点给标记上,这样就会形成许多个区间,判断一下x是否被这些区间给完全覆盖住了,如果没有被完全覆盖住,证明这个最大值可以更小.思路非常奇妙,具体实现细节可以参看代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int maxn = 210, maxm = 40010;int n, m, a[maxn][maxn], head[maxn], to[maxm],ans,len,top,nextt[maxm],w[maxm], tot = 1;
struct node
{int x, y, z;
}e[20000];struct node2
{int first, second;
}e2[20000];void add(int x, int y, int z)
{w[tot] = z;to[tot] = y;nextt[tot] = head[x];head[x] = tot++;
}void floyd()
{for (int k = 1; k <= n; k++)for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)if (a[i][j] > a[i][k] + a[k][j])a[i][j] = a[i][k] + a[k][j];
}void add2(int x, int y)
{e2[++top].first = x;e2[top].second = y;
}bool cmp(node2 a, node2 b)
{if (a.first == b.first)return a.second < b.second;return a.first < b.first;
}bool can()
{int x = 0;sort(e2 + 1, e2 + 1 + top,cmp); for (int i = 1; i <= top; i++){if (x < e2[i].first)return false;if (x > e2[i].second)continue;x = e2[i].second + 1;}if (x > len)return true;return false;
}bool check(int p)
{bool flag = false;for (int i = 1; i <= m; i++){top = 0;len = e[i].z;for (int j = 1; j <= n; j++){int x = p - a[e[i].x][j];int y = p - a[e[i].y][j];if (x < 0 && y < 0){add2(0, e[i].z);break;}if (x >= e[i].z || y >= e[i].z)continue;if (x + y >= e[i].z)continue;add2(max(0, x + 1), min(e[i].z, e[i].z - y - 1));}if (!can())flag = 1;if (flag)break;}if (flag)return true;return false;
}int main()
{memset(a, 127 / 3, sizeof(a)); scanf("%d%d", &n, &m);for (int i = 1; i <= m; i++){int u, v, z;scanf("%d%d%d", &u, &v, &z);z *= 2;add(u, v, z);add(v, u, z);e[i].x = u;e[i].y = v;e[i].z = z;a[u][v] = a[v][u] = min(a[u][v], z);}for (int i = 1; i <= n; i++)a[i][i] = 0;floyd();int l = 0, r = 10000010;while (l <= r){int mid = (l + r) >> 1;if (check(mid)){ans = mid;r = mid - 1;}elsel = mid + 1;}double temp = ans / 2.0;printf("%.2lf\n", temp);
return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7726133.html

noip模拟赛 radius相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. NOIP模拟赛套路技巧经验总结

    前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...

最新文章

  1. centos7arm进入图形化_CentOS 7 安装图形化界面
  2. 【敏捷测试】一个测试人员在参与敏捷测试的经验分享(3)
  3. Xamarin效果第十八篇之GIS中复合型Mark
  4. leetcode39. 组合总和(回溯)
  5. Centos7.5 VMtools的安装与卸载
  6. DGL实现同构/异构图卷积模型
  7. 员工入职性格测试软件,新员工入职性格测试
  8. li中浮动元素span等在IE和Firefox中的高度Bug
  9. 【XSY2307】树的难题
  10. AcWing1074. 二叉苹果树(树形DP)题解
  11. 机器学习 结构化数据_聊天机器人:根据结构化数据创建自然语言
  12. 流水作业调度 johnson法则
  13. 十行Python代码替换证件照背景颜色
  14. ES设置用户名和密码
  15. 数字电路设计: FPGA实现倍频
  16. 高级计算机网络(习题一加解析)
  17. 跟我学在高德地图——标注我的位置
  18. 解决Retrying connect to server
  19. Android应用程序如何进行系统签名
  20. “程序员吐槽大会”上,被怼坏的阿里美女产品经理,做出了2亿人在用的钉邮钉盘!...

热门文章

  1. 【LeetCode 986】 区间列表的交集(区间交集)
  2. 【Linux学习】强大的文本分析工具AWK
  3. 【HDU - 6118】度度熊的交易计划(最小费用可行流,网络流费用流变形 )
  4. 【HDU - 1025】Constructing Roads In JGShining's Kingdom(dp最长上升子序列模型 + 二分优化)
  5. 【CodeForces - 255C】Almost Arithmetical Progression (dp,离散化)
  6. 【CodeForces - 349B】Color the Fence (贪心,填数)
  7. 【HDU - 1220】Cube (组合数学,简单)
  8. php对联广告,html左右对联代码 cms网站对联广告html代码
  9. Tomcat服务器集群与负载均衡实现
  10. css布局 右固定,CSS左侧固定右侧自适应的五种布局方法