(贪心5.1.1)POJ 1230 Pass-Muraille】的更多相关文章

/* * POJ_1230.cpp * * Created on: 2013年10月9日 * Author: Administrator */ #include <iostream> #include <cstdio> using namespace std; int map[105][105]; int main() { int t, n, k, x, y, x1, y1, max_x, max_y, sum_s; scanf("%d", &t); w…
Pass-Muraille Time Limit: 2 Seconds      Memory Limit: 65536 KB In modern day magic shows, passing through walls is very popular in which a magician performer passes through several walls in a predesigned stage show. The wall-passer (Pass-Muraille) h…
(- ̄▽ ̄)-* (注意下面代码中关于iterator的用法,此代码借鉴某大牛) #include<iostream> #include<cstdio> #include<vector> #include<cstring> using namespace std; struct Wall { int row;//表示墙在哪行 int left; int right; }; ];//保存每列的墙数 vector<Wall> wall; int ma…
链接: http://poj.org/problem?id=1456 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/G 代码: #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> us…
题目链接:http://poj.org/problem?id=1018 题目大意:有n种通讯设备,每种有mi个制造商,bi.pi分别是带宽和价格.在每种设备中选一个制造商让最小带宽B与总价格P的比值B/P最大. 解法是枚举最小带宽B,每种设备在带宽大于B的制造商中找价格最小的,最后取比值最大的. 详见代码: #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using…
题目链接:http://poj.org/problem?id=1083 题目大意:走廊上的房间如下图设置,现在有n个移动桌子的任务,把桌子从xi移动到yi(整个过程中会占用xi到yi房间之间的走廊),每次移动10分钟,可以同时进行但走廊只有一个桌子宽(即不能共用走廊).问最少多少分钟. 我们可以把移动桌子看成一个区间,有重叠部分的区间是不可以同时进行的.所以问题转换为了求区间重叠的最大个数.因为如图的房间设置,我们可以把奇数看做偶数(1看做2,3看做4,2k+1看做2k+2).于是我们的数就变为…
万恶之源 目录 题意 思路 贪心的原则是什么呢? 错解 正解 代码实现 书上的代码 我的代码 比较一下 问题 题意 给定若干个点的坐标,与范围R.每个点可以选择是否标记,标记后这个点的左右范围R内的所有点也会被标记,求为使所有点被标记,我们要主动标记多少个点. 思路 这题总感觉可以用搜索做,毕竟每个点的状态要么是1要么是0.但这是书上贪心的例题,那肯定得用贪心做啦. 贪心的原则是什么呢? 错解 首先我们的目标是尽可能少的标记,因此我们当然可以希望每次一次性标记的点越多越好,那么我们是不是可以遍历…
/* * POJ_2287.cpp * * Created on: 2013年10月9日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace std; int main() { int n; int a[1010]; int b[1010]; while (scanf(&qu…
题目描述 农夫约翰为了修理栅栏,要将一块很长的木板切割成N块.准备切成的木板长度为L1,L2,L3--LN,未切割前木板的长度恰好为切割后木板长度的总和.每次切断木板时,需要的开销为这块木板的长度.请求出按照目标要求将木板切割完的最小开销是多少?例如长度为21的木板切割成长度为13和8,开销为21:把长度为13的木板切割成5和8,则开销为13,所以将长度为21的木板切割成8,5,8的三块,开销是34. 样例输入 N = 3, L = {8,5,8} 样例输出 34 思路分析 以 3 5 8 5为…
#include<iostream> #include<cstring> using namespace std; ; //(x,y) (x1,y1)墙的两个端点,所有墙最大列坐标max_x,最大行坐标max_y,最少拆除墙面数为sum_s ][]; int main() { scanf("%d",&t);//测试用例数 while(t--) { memset(map,,sizeof(map)); max_x=; max_y=; sum_s=; scan…