广告牌安放问题
来源:互联网 发布:铁塔倾斜度的算法 编辑:程序博客网 时间:2024/04/27 17:47
题目描述
某公司的广告部门为了增加盈利,决定要沿着当地一家公园的道路铺设广告(这是一个很好的盈利措施,因为有很多人每天会沿着公园的道路慢跑锻炼身体)。他们已经在准备建造一些广告牌,要将这些广告牌树立在路上。那么现在问题来了:如何安排广告牌的位置,使之既要达到宣传效果,又要尽量节省广告牌的开支(广告牌的数量最少)?
首先带领大家认识一下公园的道路:这是一条笔直的道路,用整数坐标表示路的某个位置。我们假定每个坐标处可以且最多可以放置一块广告牌。每个来锻炼身体的人的路线是固定的,从一个坐标处移动到另一个坐标处。在慢跑锻炼的过程中,人们可以看到自己路线内的所有广告牌。
公司的领导层规定要达到如下的宣传效果:要求每个人都要在锻炼的过程中看到至少一定数量的广告牌。如果一个人的锻炼距离不够放置如此多的广告牌,那么就要求这段距离全部放上广告牌,以达到尽量好的效果。
输入
多组测试数据。
测试数据为(N+1)行:
第一行有两个用空格分隔的整数K和N (1 <= K, N <= 1000) 。K表示每个锻炼者在路上要看到广告牌的最少数量,N是锻炼者的数量。
接下来的N行描述每个锻炼者的路径。每行有两个整数Ai和Bi (其绝对值均小于10000),分别表示起点和终点。
输出
输出满足宣传要求的要放置的广告牌的最少数量。
输入样例
5 10
1 10
20 27
0 -3
15 15
8 2
7 30
-1 -10
27 20
2 9
14 21
输出样例
19
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define MAXN 1050struct route{ int Begin; int End;};bool cmp(route x, route y){ return x.End < y.End;}route a[MAXN];int pos[20010];int main(){ int k, n; while(~scanf("%d%d", &k, &n)) { for(int i = 0; i < n; i++) { scanf("%d%d", &a[i].Begin, &a[i].End); if(a[i].Begin > a[i].End) swap(a[i].Begin, a[i].End); } sort(a, a+n, cmp); memset(pos, 0, sizeof(pos)); int num, need, ans; ans = 0; for(int i = 0; i < n; i++) { num = 0, need = 0; int x = a[i].Begin; int y = a[i].End; for(int j = x; j <= y; j++) { if(pos[j+10000]) num++; } if(num < k) { if(num < y-x+1) { for(int j = y; j >= x; j--) { if(!pos[j+10000]) { pos[j+10000] = 1; need++; } if((num+need >= k) || (num+need == y-x+1)) break; } } } ans += need; } printf("%d\n", ans); }}
0 0
- 广告牌安放问题
- 广告牌
- 随处安放
- unity3d 广告牌
- 广告牌技术教程:球体广告牌
- 广告牌教程:圆柱型广告牌技术
- 广告牌技术:欺骗-圆柱体化广告牌
- 无处安放的青春
- 择一座城,安放一份爱情
- 广告牌即时生成器
- LED广告牌制作方法
- 广告牌技术教程:引言
- Java 广告牌类
- Unity3d 广告牌效果
- 广告牌的价值
- hdu 2795(Billboard) 广告牌
- 我们无处安放的青春
- 我们无处安放的青春
- formatDate-------date、datetime型数据用EL表达式在页面显示
- 解决iText 5.0.6生成pdf,出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.的异常
- 软件工程 - 2、项目管理
- 用JS或者jQuery监听 浏览器窗口大小的变化事件
- 剑指offer源码-旋转数组的最小数字
- 广告牌安放问题
- [Python]Invalid mode ('w') or filename: 'd:\x0bideo'
- viterbi算法linux下C++实现
- 未经处理的异常:0xC0000005:读取/写入位置冲突——从去掉字符串所有空格说起
- 表变量与临时表的优缺点?
- oracle 行转列
- Android 颜色渲染(九) PorterDuff及Xfermode详解
- 软件工程 - 3、项目开发
- SEO工作时都会用哪些辅助工具