自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 资源 (3)
  • 论坛 (2)
  • 问答 (1)

原创 UVALive7220

1 题意A是出发点,B是到达点,0是障碍、不可达,1~9是该可达点的分值,玩家要不断将一些可达点变为障碍,然后获得该点的分数,直到A到B没有通路则停止将可达点变为障碍的动作,游戏结束。求最大获取的分是多少。2 分析从A和B分别出发,算出到其他点的sum,算出每条通路上减去一个点的分数后的最小值。,然后遍历所有点,而所有可达点之和的分数-(某条通路上减去一个点的分数)最大值就是结果。

2016-12-27 22:07:04 348

原创 SPOJ INUM Interesting Numbers 简单细节题

1 题意给N个数,问有多少个无序数对(i,j)(其中,i点击打开链接2 分析注意细节,以及书写要条理一点。如51 1 1 1 151 1 1 2 23#include #include #include #include #include using namespace std;typedef long long ll;int n;con

2016-12-25 22:44:13 335

原创 SPOJ PHT Pigeonhole Tower 预处理+二分 || 找规律

1 题意。看了好一会儿,才看懂。。给出木柴棒的个数,求最高搭几层。2 分析。找规律做的,赛后发现别人用的预处理+二分。学习了。3a.预处理+二分 ,也很快、100ms+#include #include #include #include #include #include using namespace std;typedef long long ll;

2016-12-25 22:34:41 344

原创 POJ3321 树状数组,多叉树转线性结构,经典基础题

1 题意对于一个多叉树的,有两种操作,在某个点上摘一个苹果或者生成一个苹果(每个点要么有一个苹果要么有0个苹果);输出某个点作为root的子树上的苹果之和(包括root)。2 分析将多叉树用邻接表存储下来,通过DFS将多叉树转换为线性结构并且记录子树所在区间,然后构造树状数组,进行改动和查询。3 #include #include #include #include u

2016-12-13 16:42:17 498

原创 POJ1456 贪心

1 题意:有n个商品,给出它卖出的价值以及必须在第几天之前卖出去(deadline),在某一天只能卖出一种商品。请问最佳的销售计划。2 分析:容易想错题意,其样例可能是具有迷惑性的,即你想错了题意其样例也是可能过的。3#include #include #include #include #include using namespace std;const int m

2016-12-12 08:03:26 318

原创 POJ1988 并查集(3)

1 题意2 分析3#include #include #include using namespace std;const int maxn=3e4+10;struct Node{ int all_number; int under_number; int parent;//s.t. bottom}node[maxn];void Ini()

2016-12-10 17:48:04 226

原创 POJ1703 并查集(2) 向量偏移

1 题意2 分析输入数据比较大,多用了两个cin都会超时,用scanf()与getchar(),其中对于后者要注意使用前后会不会读入其他符号。然后看到别人的博客写了一句特判,n==2时一定是输出两人在不同帮派,这句确实在题目中提到了,不过之前没写也AC了,但还是补上吧。3 #include #include using namespace std;const int m

2016-12-09 15:07:35 208

原创 POJ1182食物链 并查集 (向量偏移 讲解)

1 题意中文。2 分析关键理解两点:a. 集合不再是指同一类,该集合的root也不仅仅是普通意义(起标志作用的)的代表元;新的概念凭借这样一种观点:凡是出场过的角色,互相之间都有关系,不论关系是什么(吃?被吃?同一类?)都无所谓,只要有直接关系或者间接关系便放入一个集合,而一个集合的root,不单单起到该集合的标志性作用,而且作为一个集合中所有元素之间关系的桥梁。因此,该集合内

2016-12-08 18:42:43 429

原创 POJ2003 RE到shi ,树存储的数据结构

1 题意2 分析3 #include #include #include #include #include using namespace std;struct Node{ string name; //char name[60]; Node* parent; list son; Node(){ parent

2016-12-05 16:18:58 227

原创 POJ1330 LCA/给树的节点标记层数

1 题意,求LCA——Least Common Ancestors,最近公共祖先。2 分析代码二,先dfs将各个节点的层数标记上。代码一,标记一下数组。3 代码一,16ms#include #include #include #include using namespace std;const int maxn=10010;int parent[maxn]

2016-12-02 19:14:18 214

原创 【留坑】UVA10810 求逆序对==求最少相邻元素交换次数 归并排序OR线段树OR树状数组

1 题意:给出一个数列,允许相邻元素进行交换,求最少交换次数。2分析:求最少交换次数,等同于求该数列中的逆序对数。  证明:先将最大的数与后面的数交换直到停止,交换次数=该数的逆序数,然后将次大数与后面的数交换直到停止,交换次数=次大数的逆序数,如此直到最小数,则总共的交换次数=整个数列的逆序对数。 代码一:归并排序代码二和三,等复习完数再补3代码一:#in

2016-11-28 17:40:35 1326

原创 UVA671 模拟,字符串检查

1题意先给出一些单词构成词典,然后检查所给字符串,是否字典中的单词,如果是则输出“is correct”,或者检查是否满足下面三个条件之一,如果是,那么按输入顺序,输出字典中所有满足条件的单词:是词典中某个单词中某个字母被替换成另一个字母而得到是词典中某个单词增加一个字母而得到是词典中某个单词减少一个字母而得到2 分析1)UVA、POJ同样的题目,UVA好像会增加格式要求啊

2016-11-27 21:48:55 272

原创 【留坑】 POJ2503 注意输入输出&&几种数据结构的复习、比较(线性表建立的字典 || 树建立的字典_即Trie || hash || map)

1 题意2 分析(上限,3000ms)1)代码一,map,G++,1700ms~2500ms①注意map不能将char数组作为关键字或者映射值,除非重载②gets(temp)会读入空白行,内部是通过temp[0]=='\0'来判断,是不是空白行,如果是就不会输出,我们同样可以用这一点,来区别两组用空白行分割的输入。③因为map的未插入的key-值,其由于初始化而对应的值是n

2016-11-26 21:46:41 426

原创 【留坑】UVA246 模拟题,STL容器组合_deque&&(set判重 OR hash判重)

1 题意。2 分析STL用性能换来更强的兼容/方便,当需要判重的type比较复杂时,set.insert(),然后用set.find(),写起来方便一些。如本题,向其学习,代码一用了set。代码二依然用的hash。3 代码一#include #include #include #include //set have insert,not have push_bac

2016-11-26 15:31:03 235

原创 POJ1840 离散化+二分 OR hash_链接法 (简单题)

1 题意2 分析Note:代码一的二分,如果用STL的lower_bound(),速度很慢;而二分自己写的话速度就很快。代码一:离散化+二分 (1000ms)代码二:hash (明天补)3 代码一#include #include #include #include #define LI(x) x*x*xusing namespace std;//-(a1

2016-11-22 21:43:16 279

原创 POJ3349 hash _链接法

1 题意顺序、逆序、从任意一个位置开始6个数,只要长度和位置一一对应相同的两朵雪花,都认为是相同的。2 分析散列表,链接法处理冲突。学习:处理任意一个位置开始6个数的情况。是将6个数在数组里再复制一遍,然后从前面6个数开始分别往后连续数6个数即是不同的组合。3 挺慢的,2800ms+(4000ms)#include #include #include #inclu

2016-11-21 23:13:35 264

原创 POJ2408 模拟排序、char[]操作、利用hash优化

1 题意给定若干个字符串,将其分组,按照组成元素相同为一组,输出数量最多的前5组,数量相同的输出字典序较小的一组,每组按照字典序输出所有字符串,不输出重复的字符串。2 分析主要用到了strcmp()、strncpy()或者strcpy()、sort。应该加hash优化,明天再补。代码二 没有优化的。3代码二#include #include #include

2016-11-14 23:23:13 279

原创 POJ2126 多项式分解定理

1 题意询问多项式能否分解,如果可以输出“NO”,不可以输出“YES”。2 分析当最高次幂当最高次幂>2,多项式一定可以分解,(先不看是否一定全部为实根,只看是否能分解)当最高次幂==2,相当于判断ax^2+bx+c是否有根,b^2>=4ac可以分解,输出NO3#include #include using namespace std;int a[1010];

2016-11-14 17:05:26 468

原创 POJ2527 简化 · 多项式相除求余数

1 题意2 分析注意题目输入和输出都是从低次幂开始的。注意如果得到的余数和除数幂次相同也要继续除,知道余数的幂小于除数或者余数为0(整除)。代码一是3//假设多项式每次相除得到的商总是整数,对于此题肯定符合#include #include #include #include using namespace std;const int maxn=1e4+10;

2016-11-14 16:22:19 1233

原创 UVA10371 日期转换(6) 连写带Debug了3个小时..

1 题意各时区的时间转换。2分析题不难写,但是细节上有点绕:题目给出的12小时的时间,以及测试数据所说的,存在12:40 pm,12:01am,前一个是凌晨的、后一个是中午的。那么选择什么样的思维来编码,对编码复杂度,有很大不同。3学习①模拟题,应该先在纸上,画一个树,画清各种情况(分类)的发展脉络(发展),再动手写就如虎添翼(因为还可能对于题目所给数据进行一些变化,看②),否

2016-11-13 23:55:40 336

原创 POJ1008 日期转换(5)

1 题意2 分析唯一需要注意的,是Haab日历,每个月都是从0开始的,所以算sumday,在最后一个月除了+day_h,还要+1。3#include #include #include #include using namespace std;char Haab_month_name[20][10]={"","pop","no","zip", "zotz","tzec"

2016-11-13 20:56:13 219

原创 UVA150 日期计算(4) 新历和旧历的第一天不是同一天

1 题意输入一个日期,判断是旧历还是新历,转换成另一个历法的日期并输出,如果输出旧历,加一个*。2分析①特别注意!新历和旧历的第一天不是同一天!所以旧历比新历提前两天开始。。。【这一点要具体看题目以及题目给出的测试数据是怎么说的了。】②变量较多,注意变量名不要用错,特别是对变量的值进行操作,或者是输出时。③结束输入的判断。char str[10];  错误:   whi

2016-11-13 16:52:50 191

原创 UVA505 日期转换(3)——留坑,未A

1题意2分析注意细节以及格式控制3未A,留坑#include #include #include #include using namespace std;char week_name[7][5]={"SUN","MON","TUE","WED","THU","FRI","SAT"};char month_name[13][5]={"XXX","JAN", "FE

2016-11-13 15:08:31 174

原创 POJ3751 注意格式控制

1 题意,中文题。2 分析。注意格式控制。①格式读入,scanf("%d/%d/%d-%d:%d:%d",&yy,&mm,&dd,&h,&m,&s);②%04d,输出4位,若不够,则补0printf("%02d/%02d/%04d-%02d:%02d:%02d%s\n",mm,dd,yy,h,m,s,time[pm]);下面两个代码有鲜明的对比,良好的控制格式的读入和输出,

2016-11-12 20:39:20 308

原创 POJ2887 块状数组

1 题意给出一个长串,然后给出n个操作,操作有两种,在某个位置插入一个字符,或者查询第x个位置上的字符是什么2分析(1)快速输出第x个位置上的字符,像直接存储类数据结构中的数组就可以,但是难在插入一个字符时,后面所有字符都要动,所以不能用普通的数组;而如果用链表虽然能解决插入不超时的问题,但是因为是顺序存储类结构,所以不能很快的输出第x个位置上的字符。这里采用块状数组,数组

2016-11-12 20:03:06 293 1

原创 POJ3461 字符串之模式匹配,kmp,求目标串中有多少个位置可重叠的子串

1题意。求目标串中有多少个位置可重叠的子串。2分析。裸的kmp。3代码//在目标串中找有多少个子串,出现的子串在位置上上可以交叠#include#include#include#includeusing namespace std;const int w_maxn=10010;const int t_maxn=1000010;char word[w_maxn]

2016-11-12 00:56:43 298

原创 POJ3080 基本字符串库函数的应用 ..Brute Force/朴素模式匹配算法

1 题意:寻找最长公共子串。2分析:头文件下:a.strncpy()b.strstr()c.strcpy()3#include #include #include #include using namespace std;const int maxn=16;char str[maxn][100];char sub_str[100];char lon

2016-11-11 19:25:23 164

原创 POJ2246 水

1题意。2注意,char bs; int temp = bs-65;  而不是,bs-'65'。3#include #include #include #include #include using namespace std;const int maxn=1100;struct Matrix{ int row,col;}matrix[maxn];s

2016-11-10 17:19:17 253

原创 poj2260

1 题目 水题2 分析3#include #include #include #include using namespace std;int mat[110][110];int row[110];int col[110];int main(){ int n; while(~scanf("%d",&n)&&n!=0){ ///in

2016-11-09 21:29:18 223

原创 POJ1060 数组存储多项式+多项式乘法和取余,水

1 题意给出三个多项式f、g、h,求(f*g)mod(h),(最后一步mod,得到多项式除多项式的余数)。题目不是对多项式单纯地乘和取余的计算,而是进行了极大地简化,将多项式加法定义为,对应项的系数只有0和1,相加的项的系数是两者异或之和。2 分析。尽管不是单纯的多项式乘以多项式、多项式除以多项式,但过程与其类似,要理解多项式乘以多项式、多项式除以多项式的过程如何实现,附百度百科多

2016-11-09 20:54:02 760

原创 UVA392 模拟(多项式输出),水

1 题意,输入一个多项式,输出它。2 分析。注意模拟题思路和代码都要按部就班、步骤条理清晰,一个姿势过不了,如果觉得有更清晰的思路,就不要纠结过不了代码,而是换个姿势重新来一发。多想想题目边界、自己代码分类的边界、以及0和1等特殊情况。3#include #include #include #include #include using namespace std;c

2016-11-09 20:45:16 183

原创 UVA10523 高精度(2)+相乘、相加+注意进位和0的情况

1 题意。2分析。3代码一是面向过程,代码二是面向对象写法。代码一(来自小白菜又菜的代码,非常简洁,用于一个大数和一个int数的乘法、大数相加,相乘的代码告诉我们相乘的实质实际上就是一个数分别乘上另一个数的各个位,用数组保存,然后得到的数组从低位开始向高位滚动,满10进1。向其学习)#include #include #include #include using na

2016-11-07 21:55:35 163

原创 UVA713 高精度(1)+相加+去前导0/后缀0

1题意假设没有前导0和后缀0,简单相加,再去除前面的和后面的0,输出。2分析本题好像对0要求不严格,学习一下代码一中的去前导0和后缀0,以及合理用二维数组的方式。3代码一#include #include #include #include using namespace std;const int maxn=1010;int num[4][maxn];

2016-11-07 18:34:09 433

原创 UVA602 日期计算(2)+模拟+细节

1 题意刚开始理解错题意了,不是说以1752年9.2与1752.9.14作为分界线,计算天数时,查询日期在分界线前的天数计算用旧历闰年规则计算;查询日期在后面的、日期就分成两半,界线前的按旧历、界线后的按新历闰年规则计算,不是这样的。如果这样那么新历的延后几天用来弥补之前的误差就没有了意义,而是说:查询日期在1752.9.2之前的,计算天数用旧历的计算闰年的规则;查询日期在1752.9.1

2016-11-07 11:13:59 164

原创 POJ2080 日期计算(1),模拟题,因为细节WA很久

1 题意,给出2000年1月1日后多少天,换算出年-月-日 星期几。2 分析。比较水的模拟题。编码能力有待提高,思维不够缜密,出了很多错,是很多。注意题目要求输出的数,是有前导0的。3代码一#include #include#include using namespace std;int day;int year;int month;int zhou;in

2016-11-06 17:26:58 239

原创 UVA639 递归+回溯

1 题意:给出一张地图, 'X'是墙,'.'是可放的位置,求棋盘上最多放多少个车(中国象棋)。2 分析:回溯注意:在进入下一层的判断,如果符合某个约束条件,则进入下一层第一个递归实例,不符合或者退出一第一个递归实例后,都应该进入第二个递归实例,不然怎么回溯;另外注意不要忘记在最后一层的递归中,return。3#include #include #include using n

2016-11-06 11:09:36 133

原创 POJ1040 递归搜索(取还是不取)+ 注意特判输入

1 题意。城市0号到m号,给出一些订单,每个订单包括出发站、目的站、乘载人数,每个订单的收益等于人数*经过的站的个数,给出一个n,是火车运载人数上限,求如何取舍可以让收益最大。2分析。①如果角度跟随这趟列车,那么每个状态要处理的细节就很麻烦,不论是按上车先后订单顺序来处理,还是依次按站点来处理,都有很多细节不好处理。然而,如果我们忽略细节,而是回到问题的主干:取哪些订单使得收益最大?

2016-11-05 22:21:51 296

原创 UVA539 递归+搜索路径+注意对无向边做标记时两个方向都要标记

1 题意,每条路径(两个相邻点)只能走一次,每个点可以经过无数次,求最长的路。2 分析。①无向边,可能有环,所以Floyd不合适,而数据较小,递归搜索。②因为路径经过一次,所以visted[]作为是否进入下一个递归实例不合适,用visted_load[][]来标记和判断。③注意是无向边,所以每走过一条边,要 visted_load[cur][i]=1; visted_load[i]

2016-11-05 16:53:42 171

原创 UVA 750 八皇后·(2)+ 预处理+递归+棋盘问题

1 题意,题目描述里似乎没说清楚输入输出格式。2 分析。学习:用一个行数组、左对角线数组、右对角线数组,分别表示某一行、某一条左对角线个、某一条右对角线是否被占用。用于高效的处理,辨别是否在同一行、同一列、同一对角线的情况!3#include #include #include using namespace std;int cnt=0;int p[110][9];//

2016-11-03 16:46:01 519

原创 UVA 167 八皇后·(1) 递归、暴搜

1  8×8的棋盘上,选择合适的位置放皇后,使得互相不攻击(皇后可以攻击所在点的该行、该列、该对角线),并且使得所在位置的数相加之和最大。2 分析。①学习到的:判断先后下的点是否在同一行、同一列、同一对角线时,用这一行来判断: if(col[col_id]==col[j]||col_id+col[col_id]==j+col[j]||col_id-col[col_id]==j-c

2016-11-02 17:35:17 254

GRE佛脚2018增补包含最新热词与六选二整理.pdf

GRE佛脚2018增补包含最新热词与六选二整理.pdf,GRE佛脚2018增补包含最新热词与六选二整理.pdf

2019-08-22

GRE填空机经1200答案(修正版本).pdf

GRE填空机经1200答案(修正版本),英语能力提升。GRE填空机经1200答案(修正版本)

2019-08-22

GRE阅读机经240答案(修正版本).pdf

GRE阅读机经240答案(修正版本),英语能力提升,GRE阅读机经240答案(修正版本)

2019-08-22

提示
确定要删除当前文章?
取消 删除