上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页
摘要: /**Time: 略*题目大意:给定n个工作,每个工作有分为a, b两种,有n个工人,每个工人* 分配一个a, 一个b, 每个工人工作时间限度为t,超过t要另外支付T-t的金额* 求老板分配的最小额*解题思路:拿到题目就感觉到用贪心,可以自己无法证明,就久久没有入手。* 因为是在计算几何专题里面的。* 目标是要使未能达到t的工人数最少,所以要使每个工人的工作时间尽可能到* 达t,感觉一边升序排列,一边降序排列即可使结果最优,但还是证明不了。* 证明贪心的能力有待加强。*解题感想:水题一道,关键是要看能否看出是水题,最好能证明一下。*/View Code 1 #incl... 阅读全文
posted @ 2012-07-16 13:19 cchun 阅读(202) 评论(0) 推荐(0) 编辑
摘要: strings存在三种“大小”:1、size()和length() 返回string中现在的字符个数。上述两个函数等效。成员函数empty()用来检验字符数是否为0,亦即字符串是否为空。你应该优先使用该函数,因为它比length()或size()来得快。也就是说,使用if(s.empty()==true)而不使用if(s.size()==0)(笔者注)2、max_size() 此函数返回一个string最多能够包含的字符数。一个string通常包含一块单独内存区块内的所有字符,所以可能跟PC机器本省的限制有关系。返回值一般而言是索引型别的最大值减1。之所以“减1”有两个原因:(a)最大值本身. 阅读全文
posted @ 2012-06-27 01:04 cchun 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 基本概念:数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。数据结构的形式定义为:数据结构是一个二元组:Data-Structure=(D,S),其中:D是数据元素的有限集,S是D上关系的有限集。 数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。数据元素相互之间的关系称为结构。有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。树形结构和图形结构全称为非线性结构。集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中元素之间存在一对一关系, 阅读全文
posted @ 2012-06-15 12:50 cchun 阅读(231) 评论(0) 推荐(0) 编辑
摘要: STL中的equal函数:template<class InputIterator1, class InputIterator2> bool equal( InputIterator1 _First1, InputIterator1 _Last1, InputIterator2 _First2 );template<class InputIterator1, class InputIterator2, class BinaryPredicate> bool equal( InputIterator1 _First1, I... 阅读全文
posted @ 2012-06-10 15:06 cchun 阅读(2056) 评论(0) 推荐(0) 编辑
摘要: C++之lexicographical_comparelexicographical_compare: C++ STL 泛型算法函数:用于按字典序比较两个序列。函数申明:/**重载1如果[first1, last1)按字典序列小于[first2, last2),返回true,否则返回false。*/template <class InputIterator1, class InputIterator2 >bool lexicographical_compare( InputIterator1 first1, InputIterator1 last1, InputIterator2 阅读全文
posted @ 2012-06-10 15:01 cchun 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 输入多串数字串,要求判断是否有的数字串是其它串的前缀。如果存在输出NO,否则输出YES。解题思路: 用trie建立字典树,然后在每个数字串的结尾处标志1,之后每输入一个串,就判断一下。是否有之前的标志记号。代码:#include<iostream>using namespace std;const int MAX_LEN = 11;typedef struct trie{ trie *next[10]; int num;} T;T *tree;bool flag;void trieDel(T *p){ for(int i = 0; i < 10; i++) ... 阅读全文
posted @ 2012-05-27 22:31 cchun 阅读(195) 评论(0) 推荐(0) 编辑
摘要: inplace_merge函数的作用和merge函数差不多,只不过是在一个容器中进行归并。函数参数:inplace_merge(first,mid,last,compare);//将[first,mid) 和 [mid,last)这两个区间进行归并成一个有序序列。注意:[first,mid)和[mid,last)都要呈升序或降序排列!还记得归并排序的写法么?归并排序利用了分治的思想,将一个容器分割,然后再将它们一个个合并起来,最后形成一个有序的序列。归并排序的核心代码就在于合并两个序列,不过STL的开发人员已经为我们完成了,我们直接调用就可以了。例题:给你n个学生的信息,根据它们的分数从小到大 阅读全文
posted @ 2012-05-26 17:45 cchun 阅读(5331) 评论(0) 推荐(0) 编辑
摘要: /**Time: 125ms*题目大意:* 给定一个n,代表有n种操作,push代表把元素放入容器。* pop a,表示在容器中取出小于或等于a的最大元素。*解题思路:* 用multiset来模拟这个过程即可。*/View Code 1 #include<iostream> 2 #include<set> 3 using namespace std; 4 int main() 5 { 6 #ifndef ONLINE_JUDGE 7 freopen("in.txt", "r", stdin); 8 #endif 9 int n, 阅读全文
posted @ 2012-05-26 15:26 cchun 阅读(214) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 给定a, b, c,代表三种不同颜色的球的个数,然后规定* 如果把任意两种不同颜色的球放在一起,那么它们两个* 的颜色将变成第三种颜色的球的颜色。求判断最后所有的* 球能否变成同一种颜色,如果能,输出最小步数。否则输* 出):。*解题思路:* 广搜实现不了,因为a,b,c都是<=1000,标志状态的数组太* 大。其实就是找规律。其实a, b, c由a-x,b-x,c+2x可得到只* 要三种球的个数其中任意两种球个数只差是3的倍数,即可* 变成同一种颜色。*解题感想:* wa了2次,第一次忽略了,其实只要有两种满足三的倍数,* 那么即使另外一种球的个数小... 阅读全文
posted @ 2012-05-26 15:16 cchun 阅读(251) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 有一排车,每辆车有长度以及速度,保证每辆车* 不想撞的情况下,这些车最快通过路口的时间。*解题思路:* 求出这些车中的最小速度,总路程除以最小速度即可。*/View Code 1 #include <iostream> 2 using namespace std; 3 int main(void) 4 { 5 int n; 6 while(scanf("%d", &n) == 1) 7 { 8 int len, speed; 9 double MinSpe = INT_MAX, sum = 0;10 ... 阅读全文
posted @ 2012-05-26 15:10 cchun 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页