
PAT
EverydayIsLife
这个作者很懒,什么都没留下…
展开
-
PAT-TL 1010. Lehmer Code
1、知识点:逆序数、树状数组 2、思路:由于题目没有说明数据的范围,因此应该用数据离散化,用树状数组求和即可。/*用途: **说明: **算法: *///#define LOCAL #include <cstdio> #include <string.h> #include <stack> #include <algorithm> using namespace std; #define MAXN原创 2017-09-04 09:06:28 · 437 阅读 · 0 评论 -
PAT-AL 1007. Maximum Subsequence Sum
1、知识点:求最大连续子串和 2、思路:用temp_sum保存子串和,如果temp_sum>=0,那么temp_sum+=arri;如果temp_sum<0, temp_sum = arr[i]。判断temp_sum 是否大于sum(当前最大子串和),如果是就更新sum。/*用途: **说明: **算法: *///#define LOCAL #include <cstdio> using nam原创 2017-09-04 14:40:56 · 351 阅读 · 0 评论 -
PAT-AL 1013. Battle Over Cities
1、知识点:连通分量 2、思路:并查集/*用途: **说明: **算法:并查集 *///#define LOCAL #include <cstdio> #include <string.h> using namespace std; #define MAXN 1000+10 int N, M; int pre[MAXN]; int block[MAXN];int find(int x); voi原创 2017-09-04 16:47:26 · 360 阅读 · 0 评论 -
PAT-AL 1025. PAT Ranking
1、知识点:排序 2、思路:本题不难,可以只对全部成绩排序一次。用cur_fin_rank记录前一个总排名,cur_loc_rank记录前一个区域排名。这里需要注意,如果用qsort排序,不能用long long保存register_number,因为比较函数返回的是int类型,比较long long会出错,卡在这,最后一个测试点会过不去。/*用途: **说明: **算法: *///#define原创 2017-09-05 14:27:48 · 325 阅读 · 0 评论 -
PAT-AL 1033. To Fill or Not to Fill
1、知识点:贪心 2、思路:先将站按照距离从小到大排序。假设我有N个桶,第i号桶装第i站的汽油(i从0开始),第0站加满,到第i站时,选择从第i-1站到达此站最便宜的汽油(如果最便宜的不够用,选择次便宜的),然后将N个桶中所有比此站更贵的汽油原价卖出(说明之前买的多了,够用就好),然后加此站的油至加满(不管是不是比之前或后面的更贵,因为不加满怕到不了下个站)。最后到达终点时将所有剩下的油原价卖出即原创 2017-09-06 20:44:13 · 374 阅读 · 0 评论 -
PAT-AL 1022. Digital Library
1、知识点:字符串比较、排序 2、思路:题目要求结果按照图书编号顺序输出,因此要先将图书排序,然后将搜索词分类比较即可。注意:结构体可以直接赋值,无需重载赋值运算符。/*用途: **说明: **算法: *///#define LOCAL #include <vector> #include <cstdio> #include <string.h> #include <algorithm> usin原创 2017-09-04 10:51:56 · 439 阅读 · 0 评论 -
PAT-TL 1009. Triple Inversions
1、知识点:逆序数 2、思路:求中间节点arr[i]前面比它大的数left_big_num[i],后面比它小的数right_small_num[i],答案就是left_big_num[i]*right_small_num[i], i从2到n-1。用树状数组计算left_big_num[i],right_small_num[i]可以用一个小技巧间接求得。看了网上几篇博文,发现大部分人用排序离散化,其原创 2017-09-03 19:07:46 · 547 阅读 · 0 评论 -
PAT-AL 1039. Course List for Student
1、知识点:排序 2、思路:定义course结构、student结构: struct course{ int ind, stu_num; //课程编号,选课学生数 char name_arr[MAXNI][STRLEN]; //学生姓名 };struct student{ int order; //查询顺序 char name[STRL原创 2017-09-08 15:37:49 · 454 阅读 · 0 评论