Sicily
文章平均质量分 66
chenzhg33
good good study, day day up
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sicily 1934. 移动小球
题目地址:http://soj.me/1934 这道题我觉得挺精妙的,如果用数组顺序储存的话,很不好做,但是用数组模拟双向链表的话,或者直接用双向链表的话,就很简单了。真心觉得这题不错。#include using namespace std;int prev[500005];int next[500005];int main() { int N; cin >> N;原创 2014-03-11 12:55:07 · 1207 阅读 · 0 评论 -
sicily 1323. Switch text
题目地址:http://soj.me/1323 一开始连题目都没看懂,然后直接google了一下这道题,原来是道大水题,大概题意就是有2N行字符串,两个为一组(也有可能一组中有一个为空字符串),先输出第二个字符串,在输出第一个字符串,输出的方式如下,从中间一直往左,然后从最后往左,例如字符串abcdefge输出为dcbaegfe,如果有一个字符串味空的话,就不必输出了,代码如下:#inc原创 2014-03-24 16:47:36 · 1146 阅读 · 0 评论 -
sicily 1133. SPAM
题目地址:http://soj.me/1133 给出一大段字符串,然后找出其中的符合邮箱格式的字符串,并且输出,字符串可以重复利用,比如aa@aa@a有三个两个邮箱地址,分别是aa@aa,aa@a,我觉得这种题目还是很容易wrong的,一不小心就wrong了,大概思路就是把字符串从头到尾扫描,遇到@的时候,以@为中心向两边扫描,得到最大的邮箱地址为止,代码如下:#include #i原创 2014-03-24 16:29:02 · 1338 阅读 · 0 评论 -
sicily 1375 Balanced lineup
题目地址:http://soj.me/1375 题目分类中说是要考察的哈希的,但是我却没看出怎么要考察哈希,我的想法是把Id(原文中id为0和1,为了统计数量一样把0转为-1,这样只要他们的和为0,就表示一样多了)和x坐标封装成一个结构体,然后按坐标对结构体进行排序,接着以每个点为起点,找到和为0的那一段的横坐标相差的最大值(PS:要找和为0的那一段,可以求出前缀和sum[i],如果su原创 2014-03-20 14:51:09 · 1544 阅读 · 0 评论 -
sicily 1136 山海经
题目地址:http://soj.me/1136 一开始看到这道题,顿时欣喜不少,发现就是最大子数组问题,但是看看数据,就吓尿了,真心觉得常规解法过不了(但还是抱着试试的态度写了,结果直接time limited了),想了好久没头绪,果断google之,发现了一个叫做线段树的东西,这里先推荐这篇:http://blog.youkuaiyun.com/lifajun90/article/detail原创 2014-03-19 16:48:41 · 1045 阅读 · 0 评论 -
sicily 1021. Couples
题目地址:http://soj.me/1021题目的大概意思就是N对夫妇围成一个圈,编号为1-2N,相邻的夫妇可以移除,输入为N对夫妇的编号,判断最终可否移除所有的夫妇。一开始我想模拟整个过程,但是移除夫妇的话,需要做标记或者移动,很是麻烦,后来看到别人的思路用栈实现,边输入,边移除。#include #include #include using namespace std;in原创 2014-03-06 10:47:08 · 948 阅读 · 0 评论 -
Sicily 1194 Message Flood
题目地址:http://soj.me/1194题目说名字是不区分大小写的,用map数据结构记录那个人有没有发短信给他,然后就可以很快搞定#include #include #include using namespace std;int main() { int a, b; while (cin >> a) { if (!a) break; ci原创 2014-03-05 16:45:34 · 1348 阅读 · 0 评论 -
sicily 1509. Rails
题目地址:http://soj.me/1509 题目大意是,将1,2,3....n N个数压入栈中,然后判断出栈顺序是否合法,如果没有一种好的方法,会多很多判断之类的,代码的中的那个while循环好简洁就实现了目的。#include #include using namespace std;int main() { int rail_num; while (cin >>原创 2014-03-11 13:01:54 · 1365 阅读 · 0 评论 -
Sicily 1443. Printer Queue
题目地址:http://soj.me/1443这是一道有关队列的题目,要模拟操作很简单,但是job的优先级可能相同,最后一个用例:1 1 9 1 1,第一个优先级为1的才是要求的job,然后我用了一个结构体来标记那个job,在模拟过程:#include #include #include #include using namespace std;struct job { in原创 2014-03-05 16:57:58 · 965 阅读 · 0 评论 -
Sicily 1200 stick
意思大概就是说有n个数(n为奇数),数值相同的两个数可以成为一对,然后删除,求最终剩余的那个数,输入是合法的,比如输入为1, 2 1 则输出应该为 2。给我的第一直觉就是先排序,然后遍历一遍,找到那个数,采用的方法是第2k个数和2k+1个数比较(k = 0,1,2,3,4,5.....),如果两个数不相同,前者就是剩余的那个数。代码如下:#include #include #inc原创 2014-03-05 16:39:35 · 1124 阅读 · 0 评论 -
Sicily 1071
// 按照题意枚举每条边,看看能不能切割// 每条边可以是横的边也可以是竖的边 #include #include #include using namespace std;const int N = 102;// 定义一个矩形 struct Rec { int x1, y1, x2, y2;};// 最大面积 int max_area = 0;//sort 用的比较函数原创 2014-11-10 22:40:42 · 814 阅读 · 0 评论
分享