奶酪

[Luogu] P3958 奶酪

被刻印的时光 ゝ 提交于 2020-04-07 08:26:17
Luogu P3958 奶酪 传送门 这个题暴力可过【手动微笑】。好像据我知道的有BFS啦,DFS啦,还有并查集。 不管你怎么写,反正我写的DFS 【再次手动微笑】。首先读入数据,遍历每一个未访问的空洞进行DFS,再按距离判断哪个空洞可以继续到达,最后判断圆心高度加半径是否大于等于奶酪高度即可(即 \(hole[i].z + r \geqslant h\) )。哎,可怜一个水题,我竟然考场上爆炸, 还是太水啦 。 #include <algorithm> #include <cstdio> #include <cmath> typedef long long ll; int T, n, h, r, stp, vis[1001]; bool fnd; double tmp; struct che{ int x, y, z; bool operator < (const che &chi)const{return z < chi.z;} }c[1001]; inline double dist(int now, int i) { return sqrt(double(c[now].x - c[i].x) * (c[now].x - c[i].x) + double(c[now].y - c[i].y) * (c[now].y - c[i].y) + double(c[now].z -

《谁动了我的奶酪》感悟

梦想的初衷 提交于 2020-01-13 05:21:07
目录 一、简介 奶酪是什么 二、假定变化 三、拥抱变化 一、简介 两只小老鼠“嗅嗅”、“匆匆”和两个 小矮人 “哼哼”、“唧唧”,他们生活在一个迷宫里,奶酪是他们要追寻的东西。有一天,他们同时发现了一个储量丰富的奶酪仓库,便在其周围构筑起自己的幸福生活。 很久之后的某天,奶酪突然不见了。这个突如其来的变化使他们的心态暴露无疑:嗅嗅,匆匆随变化而动,立刻穿上始终挂在脖子上的鞋子,开始出去再寻找,并很快就找到了更新鲜更丰富的奶酪:而两个 小矮人 哼哼和唧唧,面对变化却犹豫不决,烦恼丛生,始终无法接受奶酪已经消失的残酷现实。 经过激烈的思想斗争,唧唧终于冲破了思想的束缚,穿上久置不用的跑鞋,重新进入漆黑的迷宫,并最终找到了更多更好的奶酪,而哼哼却仍在郁郁寡欢、怨天尤人。 奶酪是什么 代表着我们心里的欲望,它随着我们所处环境的变化而不断改变,不以任何人的意志为转移。 二、假定变化 1、在迷宫中搜寻,总比停留在没有奶酪的地方更有保障 2、如果你无所畏惧,你会怎样呢? 相比嗅嗅,匆匆随变化而动,还有一种情况是,假定奶酪会随时不见,并在有奶酪的时候,就为无奶酪做准备。因为,你的“奶酪”在不断地消失,他们总是会不断拿走你的“奶酪”。 三、拥抱变化 1、变化总是在发生,他们总是不断地拿走你的奶酪,预见变化,随时做好奶酪会被拿走的准备;追踪变化,经常闻一闻你的奶酪你就会知道,它什么时候开始变质。 2

设计模式@第6章:工厂模式

痴心易碎 提交于 2020-01-10 22:51:13
第6章:工厂模式 一、简单工厂模式 (一)看一个具体的需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如 GreekPizz、CheesePizz 等) 披萨的制作步骤有: prepare,bake, cut, box 完成披萨店订购功能。 (二)使用传统的方式来完成 思路分析(类图) 2) 看老师代码的演示 public abstract class Pizza{ protect String name; // 因为不同的 Pizza 准备方法不同,因此做成抽象方法 public abstract void perpard(); public void bake(){ // XXXXX } public void cut(){ // XXXXX } public void box(){ // XXXXX } } //------------------------------------------------------- // 然后具体的 Pizza 实体继承 Pizza public void CheessPizza extends Pizza(){ //实现 prepare 方法 } //------------------------------------------------------- public void GreekPizza

直播答题:撒钱狂欢能嗨多久

有些话、适合烂在心里 提交于 2020-01-07 19:14:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 10日晚,中国版“贫民窟的百万富翁”在众人“围观”之下诞生了——一名25岁的江苏公务员,从100多万答题者中杀出重围,“血战”近一个小时,捧得全部101万奖金。 一夜暴富神话的缔造者是“芝士超人”,一款映客旗下的在线答题APP。这次,参与答题的用户需要一直答题,答错者出局,不断淘汰,直到剩下最后一人。鏖战26题后,冠军决出。 直播答题被称为“2018年第一个风口”。冲顶大会、百万英雄、百万赢家、芝士超人……众多平台入局,带着相似的玩法,相似的名字,甚至是相似的奖金数额。它们是昙花一现,还是2018年真正的热点? 知识+金钱+娱乐=热点 全民答题的热潮在今年年初蔓延开来。 所有平台像是约好了一般,玩法几乎一样:12道题,每题答题时间10秒,答对所有题目者平分当场所有奖金。奖金池则从5万元到上百万元不等。 题目难度飘忽不定,闯关成功的人数也多寡不均。9日,小李参加了6次今日头条旗下“百万英雄”的答题场,共收获37元。“就这么点钱,你还玩得这么开心?”有人不屑。小李回答:“那怎么了,自己靠知识挣的,这是荣誉!” 直播答题这样一种现象级产品的出现,是“互联网+知识”走向大众的一个关键节点。“它之所以流行,是因为把知识、金钱和娱乐这三个火爆要素搅拌到了一起。” “直播问答是很巧妙的市场营销手段

【NOIP2017】奶酪

匿名 (未验证) 提交于 2019-12-03 00:17:01
现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的 奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系。 在坐标系中, 奶酪的下表面为z = 0,奶酪的上表面为z = h。 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐标。 如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞, 特别地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞; 如果一个空洞与上表面相切或是相交,Jerry 则可以从空洞跑到奶酪上表面。 位于奶酪下表面的 Jerry 想知道,在不破坏奶酪的情况下,能否利用已有的空洞跑到奶酪的上表面去? NOIP的一道水题 我居然做了一个小时??? 可能是今天脑子不好用吧 显然每次 \(\Theta(n^2)\) 枚举两两空洞,看是否联通 用并查集维护即可 放一下今晚的傻逼错误集锦: 1、坐标不开long long,等着退役吧 2、计算距离的时候z轴写成了(double)(z1 z2)-(double)(z1 z2),为此还拆开写才检查出来,等着退役吧 3、查询的时候用的fa,而不是find,等着退役吧 4、第一次打的时候是从0~n+1,看是否都联通了。然而有可能会有独立的空洞,只需要看上下表面是否联通即可,等着退役吧 蠢 #include<bits/stdc+

【题解】洛谷P3958[NOIP2017]奶酪 并查集/dfs

匿名 (未验证) 提交于 2019-12-02 22:56:40
打了一份并查集一份dfs的代码 #include<cstdio> typedef long long ll; const int N=1e3+10; int set[N]; ll n,h,r; struct node{ ll x,y,z; }hole[N];//存点 void init()//初始化代表元全为自己 { for(int i=0;i<=n+1;i++) set[i]=i; } int findset(int x)//查找代表元 { if(x==set[x]) return x; else return set[x]=findset(set[x]); } void unionset(int x,int y)//并集 { int fx=findset(x); int fy=findset(y); set[fy]=fx; } ll getdis(node a,node b)//返回两点间的距离的平方 { return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z); } int main() { //freopen("in.txt","r",stdin); int t,i,j; scanf("%d",&t); while(t--) { scanf("%lld%lld%lld",&n,&h,&r);/

[Usaco2005 mar]Yogurt factory 奶酪工厂

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 10:10:24
接下来的N(1≤N10000)星期中,奶酪工厂在第i个星期要花C_i分来生产一个单位的奶酪。约克奶酪工厂拥有一个 无限大的仓库,每个星期生产的多余的奶酪都会放在这里。而且每个星期存放一个单位的奶酪要花费S分。工厂最 近收到了客戶N个星期的订单,第i个星期要向客戶提供Y_i 个单位的奶酪。当然这些奶酪可以在第i个星期时生产 ,也可以从仓库中拿取。采用怎样的生产策略约克奶酪工厂的花费最小呢? Input 第一行两个整数:N和S;接下来的N行中,第i行的两个数表示:C_i和Y_i。 Output 仅一行,即工厂生产的最小花费 Sample Input 4 5 88 200 89 400 97 300 91 500 Sample Output 126900 Sol:对于第i个月来说,要么当月生产。要么使用前面某个月,设为k,生产下来的 则对于第i+1个月来说要么当月生产要么使用前面某个月,则这个值仍等于前面的k,注意结果要用long long 保存 #include<cstdio> int n,s,c,a; long long now=10000000,ans=0; int main() { scanf("%d%d",&n,&s);//n个月,保管费用为s for (int i=1;i<=n;i++) { scanf("%d%d",&c,&a);//当月的成本为c,需求量为a if

谁动了我的奶酪?--java实例初始化的顺序问题

随声附和 提交于 2019-11-29 13:15:59
故事背景 有一天,老鼠小白发现了一个奇怪的问题,它的奶酪的生产日期被谁搞丢了,不知道奶酪是否过期,可怎么吃呀? 让我们来看看吧 import java.util.Date;public class Cheese { public static final Cheese cheese=new Cheese(); private final long produceTimes; private static final long produceDate =new Date(119,8,1).getTime(); private Cheese() { produceTimes=new Date().getTime()-produceDate; } public long produceTimes() { return produceTimes; } public static void main(String[] args) { System.out.println("current time in day(from 1900:00:00) : "+new Date().getTime()/(1000*60*60*24L)); System.out.println("cheese had produces : "+ cheese.produceTimes()/(1000*60*60

P3958 奶酪

做~自己de王妃 提交于 2019-11-27 14:11:25
题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表面为z=h。 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;如果 一个空洞与上表面相切或是相交,Jerry 则可以从空洞跑到奶酪上表面。 位于奶酪下表面的 Jerry 想知道,在 不破坏奶酪 的情况下,能否利用已有的空洞跑 到奶酪的上表面去? 空间内两点P1(x1,y1,z1)、P2(x2,y2,z2)的距离公式如下: dist(P1,P2)=(x1−x2)^2+(y1−y2)^2+(z1−z2)^2 ​ 输入格式 每个输入文件包含多组数据。 的第一行,包含一个正整数 T,代表该输入文件中所含的数据组数。 接下来是 T 组数据,每组数据的格式如下: 第一行包含三个正整数 n,h 和 r,两个数之间以一个空格分开,分别代表奶酪中空 洞的数量,奶酪的高度和空洞的半径。 接下来的 n 行,每行包含三个整数 x,y,z,两个数之间以一个空格分开,表示空 洞球心坐标为(x,y,z)。 输出格式 T 行

奶酪(并查集)

こ雲淡風輕ζ 提交于 2019-11-27 02:41:15
链接: https://ac.nowcoder.com/acm/problem/16417 来源:牛客网 奶酪(并查集) 题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z = 0,奶酪的上表面为 z = h。 现在, 奶酪的下表面有一只小老鼠 Jerry, 它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交, Jerry 则可以从奶酪下表面跑进空洞; 如果一个空洞与上表面相切或是相交, Jerry 则可以从空洞跑到奶酪上表面。 位于奶酪下表面的 Jerry 想知道, 在不破坏奶酪的情况下,能否利用已有的空洞跑到奶酪的上表面去? 空间内两点 P1(x1,y1,z1) 、P2(x2,y2,z2) 的距离公式如下: 输入描述: 每个输入文件包含多组数据。 输入文件的第一行,包含一个正整数 T,代表该输入文件中所含的数据组数。 接下来是 T 组数据,每组数据的格式如下: 第一行包含三个正整数 n, h 和 r, 两个数之间以一个空格分开,分别代表奶酪中空洞的数量,奶酪的高度和空洞的半径。 接下来的 n 行,每行包含三个整数 x, y, z,