【比赛】NOIP2017 奶酪】的更多相关文章

开始看到题以为是计算几何,后面发现不是,然后秒掉了. 可能写SPFA写多了,别人都是并查集做的,我用的是SPFA. 不过无所谓,我们把题目中的下底面和上表面看成两个点,那么就是求这两个点的连通性,如果连通,出Yes,否则出No. 转换成图论,如果两个洞的半径乘2大于等于两洞球心之间的距离,那么这两个洞就直接相通,连边,总共平方复杂度建图. 然后跑SPFA,如果终点的dis不为inf,就可到达. #include<bits/stdc++.h> using namespace std; #defi…
题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表面为z=h. 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标.如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞:如果 一个空洞与上表面相切或是相交,Je…
问题描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z = 0,奶酪的上表面为z = h. 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标.如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞:如果 一个空洞与上表面相切或是相…
题面 题解 我们考虑使用一个并查集维护空洞之间的关系. 如果两个空洞能相互到达,那么它们的祖先也是相同的. 枚举从哪一个空洞开始,能否到达奶酪的上表面. 如果能到达就输出Yes,否则输出No. 注意开long long. 代码 #include <bits/stdc++.h> #define itn int #define int long long #define gI gi using namespace std; inline int gi() { int f = 1, x = 0; c…
\(\color{#0066ff}{ 题目描述 }\) 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1的时候,他明白这就是一个不可能完成的任务. 但他不死心,他在想,能不能避开boss去拯救公主呢,嘻嘻. Boss的洞穴可以看成一个矩形,英雄在左下角(1,1),公主在右上角(row,line).英雄为了避开boss,当然是离boss距离越远越好了,所…
期中考总结&NOIP2017总结 2017年11月11日,我第二次参加NOIP普及组复赛.上一年,我的得分是250分,只拿到了二等奖.我便把目标定为拿到一等奖,考到300分以上. 早上8点多,我们去302教室,听同学讲考试注意事项(有十几条),有两条令我受益匪浅--要吃饱:不要定义与自带函数重名的变量或函数(如x0,y0什么的). 我们看了自己的考试信息后,就上车了.11点多就到达广州了. 吃中午饭的地方是一间名叫都城快餐的快餐店,我们却吃了一个多小时的快餐(有人等饭等了四十多分钟) 吃完饭后,…
题目链接:奶酪 这道题还是很水的,在下拿了满分. 并没有用什么高级的算法,我讲一下基本思路. 我们把每个洞都视为一个节点. 我们读入相关数据后,就先进行预处理,通过每个节点的信息和题目的规定,建立一张无向图,两个能相通的洞对应的节点之间有一条无向边,这样我们就建立好了一张图. 在建图的时候,我们还需要干一件事,那就是记录哪些是起点,哪些是终点. 接下来我们就对每一个节点进行bfs就行了,这样就可以了. 我们再结合代码讲解一下: #include<cstdio> #include<cstr…
这道题考试的时候就骗了部分分.其实一眼看过去,n范围12,就知道是状压,但是不知道怎么状压,想了5分钟想不出来就枪毙了状压,与AC再见了. 现在写的是状压搜索,其实算是哈希搜索,感觉状压DP理解不了啊.思路来自于Gt,几乎照搬地写了自己的代码. 思路很简单,搜索.搜索里加了个启发,有点,不,是很像最优性剪枝. dfs里,hsh是每个点的深度哈希起来(初始化要对于每一个点定一个专门的哈希值,用这个值来哈希自己的深度),k是已经连上了多少个点,val是代价. 估价函数里,对于每一个没有加入答案集合的…
考试的时候灵光一闪,瞬间推出DP方程,但是不知道怎么判-1,然后?然后就炸了. 后来发现,我只要把拓扑和DP分开,中间加一个判断,就AC了,可惜. 看这道题,我们首先来想有哪些情况是-1:只要有零环在满足题目要求的路径上,那么这条路径就可以不停地走,于是就-1了. 如何判有没有零环呢? 机械化地两遍不同方向的SPFA,就知道某个点在不在最短路上,以此建一个最短路图,在最短路图上找零环.于是就拓扑啦.稍加判断就解决了整个题目最关键的-1. 接下来就是DP了,设f[i][j]表示走到i点,走过路程已…
恶心的模拟题,考场上犯了一堆错误,多组数据清空没清完.数组开小...民间都是50分,结果CCF90.. 考完后随便改改就过了,还好只少了10分,如果真的是50,我估计会疯掉. 因为考场的时候没写好,所以最终的代码也很难看. #include<bits/stdc++.h> using namespace std; ],p[],fnum,stack_num,sck[],sck_num; ],ch[],res[]; inline void init() { memset(p,,sizeof(p));…