【习题 8-15 UVA - 1617】Laptop】的更多相关文章

题意:有n个长度为1的线段,确定它们的起点,使得第i个线段在[ri,di]之间,输出空隙数目的最小值. 析:很明显的贪心题,贪心策略是这样的,先把所有的区间排序,原则是按右端点进行排序,如果相等再按左端点排,然后再扫一遍,如果第一个区间的右端点和第二个右端点一样, 一定可以相邻,如果不相等,再看是不是与左端点大小关系,如果小于左端点,那么就一定会产生空隙,如果不是小于,就可以,那么端点要向右移动一个单位,其他的也样判断. 代码如下: #include <cstdio> #include <…
题意: 有n条长度为1的线段,确定他们的起点,必须是整数,使得第i条线段在[ri,di]之间.最后输出空隙的最小值 分析: 原始数据排序,排序的规则是先按照右端点排序,右端点相同的情况下,再按照左端点排序.然后最左边开始遍历线段,判断第一个右端点是否小于第二个左端点,如果小于,则中间肯定有空隙,标记加1. 代码: #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 贪心. 把所有的区间按照右端点为第一关键字,左端点为第二关键字升序排. 然后令now = a[i].second. (now即当前的连续区间的最右端点 即第一个区间的右端点. 第一个点就应该放在这个地方. 然后对于第i+1个区间. 如果now==a[i+1].second 则把第i+1个点放在之前一连串的点的最左边的左边一个位置. 然后now保持不变 (保证有解的话,肯定是有空位置的,之前连续放的点不可能充满整个第i+1个区间的…
题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时,还是有点迷糊......ヽ(≧□≦)ノ)先按右端点从小到大排序,再是左端点.于是有2个理解:1. 扫一遍,r保存之前的线段的右端点的最大值,分情况讨论:2. (这个我理解了差不多1个小时......qwq 于是我好不容易理解了之后,再进行了一些小修改.)l , r 表示之前线段左.右端点的范围.再分别看没有&…
先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++ 开始下一个整块.判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的最小值. #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; const int MAXN = 112345;…
Problem Description 输入n个字符串(n<=100),输出其中最长的串,如果有多个则取最先找到的那一个. Input 多组测试数据. 每组测试数据第一行包含一个整数n,表示一共有n个字符串. 接下来每行包含一个字符串,由可打印字符组成. Output 每组测试样例输出一行.输出找到的满足题意的字符串. Sample Input 3 djdlkfjsadfjwe dlkfjdlkfjl;jf;sfjdsl;al/ dljfd 2 dlkasfjmml ld;femflsad;fi…
#include<stdio.h> #include<stdlib.h> typedef int * List; /* 自调整表的Find数组实现 */ int Find(List L,int MaxSize,int X) { ; ; i < MaxSize; i++ ) { if( L[i] == X ) { where = i; break; } } if(where){ ; i-- ) { L[i] = L[i-]; } L[] = X; } else ; } /* 自…
/* * UVA_630.cpp * * Created on: 2013年11月4日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <map> #include <string> #include <algorithm> using namespace std; int main(){ int t; scanf("%d",&…
目录 前置技能 环形队列 具体实现 设计一个环形队列,用front和rear分别作为队头和队尾指针,另外用一个tag表示队列是空 ( 0 ) 还是不空 ( 1 ),这样就可以用front==rear作为队满的条件.要求设计队列的相关基本运算算法. 前置技能 环形队列 队列中进出时需要大量前移后移操作,除了链式队列,使用环形队列挪动下标也是一个不错的选择.队列的数据类型定义参考书第45页. 具体实现 原理很简单,实现的时候要注意判断tag在数入队.出队时,是否要转换真假值.另外清除队列时只需要把头…
[题目要求] 请仔细查看如下几个数字的规律,并使用shell脚本输出后面的十个数字 10 31 53 77 105 141... ... [核心要点] 计算两个数值之间的差值 [脚本] #!/bin/bash x= y= ` do echo $x x=$[$y+$y] z=$[**$i] y=$[$y+$z] done…