摘要: 题目: 题目网址:Problem - 1394 (hdu.edu.cn) 思路: 有一个n个整数的排列,这n个整数就是0,1,2,3...n-1这n个数。 现在先计算一下初始排列的逆序数,然后把第一个元素a1放到an后面去,形成新排列a2 a3 a4...an a1,然后再求这个排列的逆序数。 继续 阅读全文
posted @ 2021-08-06 14:32 wateriness 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:2352 -- Stars (poj.org) 思路: 定义星星的等级为左下角星星的个数,给定以y坐标升序的星星输出各级别星星的个数; 因为按照Y坐标升序输入,所以放入一个点后,不会影响到等级比他大的点的个数,所以和它同等级的点的个数应该加一; 代码实现: #include<ios 阅读全文
posted @ 2021-08-06 14:25 wateriness 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:3264 -- Balanced Lineup (poj.org) 思路: 用线段树来存储区间内的最大最最小值差异; 代码实现: #include <iostream> #include <stdio.h> #include <algorithm> #include <string 阅读全文
posted @ 2021-08-04 15:27 wateriness 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - 1754 (hdu.edu.cn) 思路: 利用线段树存储区间内的最大值对应操作进行输出; 代码实现: #include <iostream> #include <algorithm> using namespace std; const int maxn=20 阅读全文
posted @ 2021-08-04 15:09 wateriness 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - 1166 (hdu.edu.cn) 思路: 对N个数据进行单个的增加或者减少,并随时获取一段数据的和; 普通的方法只能让增减和查询其中一个的复杂度为O(n); 这里我就需要用的线段树进行存储让两个步骤的复杂度都为O(log n); 线段树就是用空间来代替时间; 阅读全文
posted @ 2021-08-04 14:58 wateriness 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:1274 -- The Perfect Stall (poj.org) 思路: 给定N个牛,M个市场,每个牛都有几个最适的市场,需求市场对应奶牛的最多个数; 利用二分查找以及匈牙利算法进行匹配; 代码实现: #include<iostream> #include<string.h> 阅读全文
posted @ 2021-07-29 17:46 wateriness 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - C - Codeforces 思路: 输入一个由0,1组成的图代表二维数组的道路有无; 在输入m给节点判断是否可以被去掉; 首先对数组进行初始化,在进行Floyd循环, 在对每一个节点进行判断 若w[cnt][res[i]] + w[re[i]] [res[i+ 阅读全文
posted @ 2021-07-28 14:06 wateriness 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - 1874 (hdu.edu.cn) 思路: 给定n个点,m条道路;求S,T之间的最短路径; 首先将道路数据存储在二维数组里,在进行初始化, 将所有道路都设为最大值,相同的设为0; 在输入道路信息,对应存入数组里; 在进行Floyd算法循环,对应S,T输出答案; 阅读全文
posted @ 2021-07-28 13:56 wateriness 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - 602C - Codeforces 思路: 有n个城镇,m条铁路,没有铁路的地方就有公路求火车和汽车后到的那个的最小时间 如果有直达的就看汽车,将铁路都设为最大其他为1; 没有直达,就对火车进行操作除铁路都设为最大; 对处理后的二维数组进行Floyd算法处理,输 阅读全文
posted @ 2021-07-27 14:53 wateriness 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题目: 题目网址:Problem - 2544 (hdu.edu.cn) 思路: 给定n个路口,m个道路,求由第1个路口到第m个路口的最短距离; 先将道路的长度双向存储在一个数组里,在用Dijkstra算法预处理,找到最后第一个点的最优距离; Dijkstra算法:定义三个数组, 第一个用于存储所给 阅读全文
posted @ 2021-07-27 12:56 wateriness 阅读(64) 评论(0) 推荐(0) 编辑