地毯

【洛谷 2121】拆地毯

五迷三道 提交于 2019-12-02 00:10:24
题目背景 还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了。组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯。请你来解决类似于铺地毯的另一个问题。 题目描述 会场上有 n 个关键区域,不同的关键区域由 m 条无向地毯彼此连接。每条地毯可由三个整数 u、v、w 表示,其中 u 和 v 为地毯连接的两个关键区域编号,w 为这条地毯的美丽度。 由于颁奖典礼已经结束,铺过的地毯不得不拆除。为了贯彻勤俭节约的原则,组织者被要求只能保留 K 条地毯,且保留的地毯构成的图中,任意可互相到达的两点间只能有一种方式互相到达。换言之,组织者要求新图中不能有环。现在组织者求助你,想请你帮忙算出这 K 条地毯的美丽度之和最大为多少。 输入格式 第一行包含三个正整数 n、m、K。 接下来 m 行中每行包含三个正整数 u、v、w。 输出格式 只包含一个正整数,表示这 K 条地毯的美丽度之和的最大值。 输入输出样例 输入 #1 复制 5 4 3 1 2 10 1 3 9 2 3 7 4 5 3 输出 #1 复制 22 说明/提示 选择第 1、2、4 条地毯,美丽度之和为 10 + 9 + 3 = 22。 若选择第 1、2、3 条地毯,虽然美丽度之和可以达到 10 + 9 + 7 = 26,但这将导致关键区域 1、2、3 构成一个环,这是题目中不允许的。 1<

NOIP 2011 铺地毯

余生长醉 提交于 2019-12-02 00:08:19
洛谷 P1003 铺地毯 洛谷传送门 JDOJ 1744: [NOIP2011]铺地毯 D1 T1 JDOJ传送门 Description 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n 张地毯,编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。 【数据范围】 对于 30%的数据,有n≤2; 对于 50%的数据,0≤a, b, g, k≤100; 对于 100%的数据,有0≤n≤10,000,0≤a, b, g, k≤100,000。 Input 输入共 n+2 行。 第一行,一个整数 n,表示总共有n 张地毯。 接下来的 n 行中,第i+1 行表示编号i 的地毯的信息,包含四个正整数a,b,g,k,每 两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)以及地毯在x 轴和y 轴方向的长度。 第 n+2 行包含两个正整数x 和y,表示所求的地面的点的坐标(x,y) Output 输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1。 Sample Input 3 1 0 2 3 0 2 3

铺地毯(取最上层的地毯)

核能气质少年 提交于 2019-12-01 13:54:59
题目来源: https://www.luogu.org/problem/P1003 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n n 张地毯,编号从 1 1 到 n n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。 输入格式 输入共 n+2 n + 2行 第一行,一个整数 n n,表示总共有 n n张地毯 接下来的 n n行中,第 i+1 i + 1行表示编号 i i的地毯的信息,包含四个正整数 a ,b ,g ,k a , b , g , k ,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a,b) ( a , b )以及地毯在 x x轴和 y y轴方向的长度 第 n+2 n + 2行包含两个正整数 x x和 y y,表示所求的地面的点的坐标 (x,y) ( x , y ) 输出格式 输出共 1 1行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出 -1 − 1 输入输出样例 输入 #1 复制 3 1 0 2 3 0 2 3 3 2 1 3 3 2 2 输出 #1 复制 3 输入 #2 复制 3

NOIP 2011 铺地毯

ぃ、小莉子 提交于 2019-11-29 00:44:35
有些题解的方法把这道题搞得有些复杂。我们可以简化一下 简单来说就是投机取巧 。 因为,这道题就是要看指定的地方有没有覆盖地毯,如过有的话就输出,没有的话就照题干输出-1就好了。 总而言之就是看我下面的代码吧 1 #include<cstdio> 2 #include<cstdlib> 3 using namespace std; 4 int main() 5 { 6 int n,a[10005],b[10005],g[10005],k[10005],x,y; 7 scanf("%d",&n); 8 for(int i=1;i<=n;++i) 9 scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]); 10 //输入铺设地毯的左下角的坐标(a,b)以及地毯在x轴和y轴方向的长度 11 scanf("%d%d",&x,&y); 12 for(int i=n;i>=1;--i) //找最上面覆盖的地毯,所以从上往下找 13 if(x>=a[i]&&x<=a[i]+g[i]&&y>=b[i]&&y<=b[i]+k[i]) 14 { 15 printf("%d\n",i); 16 exit(0); //找到覆盖的,输出,结束 17 } 18 printf("-1\n"); //没找到,输出-1 19 return 0; 20 } 来源: https://www

P1003 铺地毯

流过昼夜 提交于 2019-11-27 05:02:29
总在不经意的年生,回首彼岸,纵然发现光景绵长。 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 nn张地毯,编号从 11 到nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。 输入格式 输入共n+2n+2行 第一行,一个整数nn,表示总共有nn张地毯 接下来的nn行中,第 i+1i+1行表示编号ii的地毯的信息,包含四个正整数a ,b ,g ,ka,b,g,k ,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)(a,b)以及地毯在xx轴和yy轴方向的长度 第n+2n+2行包含两个正整数xx和yy,表示所求的地面的点的坐标(x,y)(x,y) 输出格式 输出共11行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1−1 输入输出样例 输入 #1 复制 3 1 0 2 3 0 2 3 3 2 1 3 3 2 2 输出 #1 复制 3 输入 #2 复制 3 1 0 2 3 0 2 3 3 2 1 3 3 4 5 输出 #2 复制 -1 说明/提示 【样例解释1】 如下图,11 号地毯用实线表示,22

C - Aladdin and the Flying Carpet LightOJ - 1341 (唯一分解,素数筛法)

允我心安 提交于 2019-11-26 21:02:57
C - Aladdin and the Flying Carpet LightOJ - 1341 题目链接: https://vjudge.net/contest/70017#problem/C 题目: 据说阿拉丁在获得魔法之光之前必须解开七个谜团才能召唤出一个强大的精灵。在这里,我们关注第一个谜。 阿拉丁即将进入一个神奇的洞穴,由邪恶的巫师领导,他伪装成阿拉丁的叔叔,在入口处发现了一个奇怪的神奇飞毯。有一些奇怪的生物守卫着洞穴的入口。阿拉丁可以跑,但他知道有很高的机会被抓住。所以,他决定使用神奇的飞毯。地毯呈矩形,但不是方形。阿拉丁拿走了地毯,在他的帮助下,他经过了入口。 现在,您将获得地毯的区域和地毯最小可能的长度,您的任务是找到可能的地毯类型。例如,地毯12的面积和地毯的最小可能侧面是2,那么可以有两种类型的地毯,它们的侧面是:{2,6}和{3,4}。 输入 输入以整数T(≤4000)开始,表示测试用例的数量。 每个案例以包含两个整数的行开头:a b(1≤b≤a≤1012)其中a表示地毯的面积,b表示地毯的最小可能面。 产量 对于每种情况,请打印案例编号和可能的地毯数量。 Sample Input 2 10 2 12 2 Sample Output Case 1: 1 Case 2: 2 思路: 每个大于1的自然数均可写为质数的积,这是算术基本原理,先宿主筛打表素数