忘记链接了,原作者见谅...
1028:经典问题,先按x坐标第一关键字,y坐标第二关键字排序,然后线段树/树状数组/平衡树都行
1037:优先队列维护靠前的空间,单调队列维护删除
1067:改造版Trie+DFS
1090:经典逆序对问题,树状数组/线段树/归并排序
1100:惟一的玄机就是stable_sort
1126:固定的一个序列里面RMQ,S-T/优先队列/线段树……
1220:貌似简单的问题,1000个栈,操作100000次就是push和pop,
很容易想到的裸做法是:int data[100000] 表示每个数据,int fa[100000]表示每点在栈里的父亲,int top[1000]表示1000个栈顶坐标
但是内存卡的很死很死,开200000个int是超的……
鉴于fa里的数据大小<=100000<17Bit,int的前15个Bit实际上浪费了,压缩一下,将100000个int压成了100000*17/32=52000个大概,过了
1316:BST里插入删除Rank
1350:纯水
1439:初始一个集合1000000000个数,10000个操作:删除和查询第k大,由于操作不多,反其道而行之,用BST存储删除的值,查询第k大时应用二分+BST的rank
1470:三维树状数组
1471:树上两点间距离,DFS+LCA
1494:没读懂,上网查的,原来是判断一个序列能否由一个栈以及12345.....n的序列生成……直接搞
1521:Joesph问题,可线段树解决(忘了数学方法了)
1523:K-逆序对问题,按照他的定义,重复使用经典逆序对算法就行
1613:给你一个序列以及若干查询,问某数是否在区间【L,R】间出现过
STL的应用:map<int,set<int> >,对每个数维护一个出现集合,然后对每个查找,如果该数不在Map里,肯定没有,如果在的话,在set里进行lower_bound,查找出现集合和区间【L,R】有没有交
想法其实没错,但是TLE了,后观察到这东西本来插入时是1~N走的,本来就有单调性,不用Set,用vector就行,改后AC
1628:30000*30000的地图里,分布着60000个黑点,求空白线段数量,vector+二分,注意题意:答案为1*L和L*1(L>=2)的块数+1*1的块数
1671:给出一个图,给出一系列边,按顺序拆掉,问每拆掉一个边后图里有几个联通块
逆向思考,用并查集维护,把没拆的边先加入图里,然后倒着来,一一加上边,维护联通块个数
题号 标题 难度系数 算法
1000 A+B Problem 10% 直接加
1002 Phone Numbers 50% 动态规划或最短路
1003 Parity 70% 区间减法
1004 Sightseeing trip 60% 最短路
1005 Stone Pile 30% 动态规划或搜索
1006 Square Frames 35% 模拟
1007 Code Words 30% 模拟
1008 Image encoding 30% 广度优先搜索
1009 K-Based Numbers 20% 递推或枚举(数据规模小)
1010 Discrete Function 40% 贪心
1011 Conductors 25% 搜索
1012 K-Based Numbers 30% 递推
1013 K-Based Numbers 33% 递推
1014 The Product of Digits 30% 贪心
1015 Test the differences 35% 模拟
1016 A cube on the walk 50% 搜索或者最短路
1017 The Staircases 30% 递推(母函数)
1018 The Binary Apple Tree 50% 动态规划
1019 A Line painting 40% 离散化处理
1020 Rope 45% 一般的计算几何问题
1021 Sacrament of the sum 40% 动态规划
1022 Genealogical Tree 30% 拓补排序
1023 Buttons 50% 动态规划
1024 Permutations 25% 置换(和题目名字一样)
1025 Democracy in Danger 20% 贪心
1026 Questions and Answers 40% 快速排序
1027 D++ again 40% 字符串处理
1028 Stars 75% 线段树
1029 Ministry 55% 动态规划(注意优化)
1030 Titanic 60% 计算几何(注意精度!)
1031 Railway Tickets 45% 动态规划
1032 Find a mutilple 55% 同余问题
1033 Labyrinth 30% 搜索、遍历
1034 Queens in peaceful positions 35% 搜索
1035 Cross-sitich 60% 欧拉路径问题
1036 Lucky tickets 50% 递推
1037 Memory Management 55% 模拟(注意优化)
1038 Spell Checker 45% 字符串的操作及统计
1039 Anniversary party 40% 树的动态规划
1040 Airline company 55% 搜索
1041 Nikifor 85% 线性代数问题
(过了,但怀疑算法不对)
1042 Central Heating 50% 解线性同余方程组
1043 Cover an Arc. 58% 计算几何
1044 Lucky tickets 40% 递推
1045 A funny game 55% 搜索
1046 Geometrical dreams 88% 很复杂的计算几何
1047 Simple calculations 30% 数学题,解方程吧!
1048 Superlong Sums 48% 高精度加法
1049 Brave ballonists 30% 模拟
1050 Preparing an article 63% 比较麻烦的字符串处理
1051 A simple game on a grid 60% 数学杂题
1052 Rabbit Hunt 28% 简单的计算几何
1053 Pinocchio 32% 求最大公约数(题目意思不明)
1054 Hanoi Tower 50% 数学问题
1055 Combinations 40% 数学问题
1056 Computer net 55% 动态规划
1057 Amount of dergess 53% 数学问题
1058 Chocolate 85% 复杂的计算几何问题
1059 Expression 20% 简单的打印问题
1060 Flip game 35% 我搜索,过了
1061 Buffer Manager 45% 模拟
1062 Triathlon 83% 复杂的不等式问题
1064 Binary Search 48% 搜索
1065 Frontier 75% 动态规划
1066 Garland 40% 数学问题
1067 Disk Tree 45% 模拟或排序
1068 Sum 20% 简单的加法题
1069 The prufer code 50% 构造
1070 A local time 60% 考虑要周全
1071 Nikifor - 2 45% 搜索
1072 Routing 40% 最短路问题
1073 A square problem 50% 动态规划
1074 A very short problem 58% 模拟、判断
1075 A thread in the space 65% 麻烦的计算几何
1076 Trash 50% 二分图的最大权匹配
1077 Travelling Tours 60% 图的遍历
1078 Segments 40% 动态规划
1079 Maxium 50% 数学问题
1080 Map coloring 35% 深度优先搜索
1081 Binary Lexicographic Sequence 40% 数学问题
1082 Gaby Ivanushka 15% 没有算法,直接输出答案
1083 Factorials!!! 25% 简单的数学计算
1084 A goat in a kitchen garden 35% 简单的计算几何
1085 Meeting 55% 最短路
1086 Cryptography 45% 数学问题
1087 The time to take stones 48% 递推
1088 Ilya Murumetz 33% 二叉树的性质
1089 verification with a vocabulary 50% 字符串处理
1090 In the army now 60% 平衡二叉树
1091 Tmutarakan exams 57% 运用容斥原理
1092 Transversal 75% 贪心
1093 Darts 65% 立体解析几何
1094 E-screen 40% 字符串处理
1095 Nikifor - 3 45% 同余问题
1096 Get the right route plate! 40% 广度优先搜索
1097 Square country - 2 63% 离散化处理
1098 Questions 48% 字符串处理
1099 Work scheduling 60% 图的最大基数匹配