
ACM
polanwind
这个作者很懒,什么都没留下…
展开
-
Codeforces 863A Quasi-palindrome
题目链接:CF-863A给定一个数x,如果在x前加任意多的前导0(可以没有),可以变成一个回文数,则输出YES,否则NO。把数字末尾的0去掉然后在判断剩余数字是否是回文数即可。如101000,把末尾3个0去掉变成101,是回文数,输出YES。#define _CRT_SECURE_NO_WARNINGS#include #include #include using name原创 2017-09-22 20:12:45 · 375 阅读 · 0 评论 -
poj 1321 棋盘问题
棋盘问题Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 44301 Accepted: 21497Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对原创 2017-04-29 20:13:59 · 444 阅读 · 0 评论 -
poj 1611 The Suspects
The SuspectsTime Limit: 1000MS Memory Limit: 20000KTotal Submissions: 37732 Accepted: 18302DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumoni原创 2017-04-29 13:59:52 · 247 阅读 · 0 评论 -
poj 3278 Catch That Cow(bfs)
Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 89208 Accepted: 27970DescriptionFarmer John has been informed of the location of a fugitiv原创 2017-04-29 12:06:06 · 229 阅读 · 0 评论 -
hdu 1598 find the most comfortable road
题目来源:HDU 1598简单题目分析:求A到B的所有路径中,最大权值和最小权值的差的最小值。思路:枚举+贪心。先用结构体存储m条边,并按权值升序排列。依次从最小边枚举,逐渐加入边直到A与B连通(Kruskal的思想),每一次更新最小值即可。#include #include #include #include using namespace std;int n,m;原创 2017-05-11 22:41:11 · 175 阅读 · 0 评论 -
poj 1125 Stockbroker(多源最短路径)
题目来源:POJ 1125简单题目分析及思路:题意比较难懂,但是思路是多源最短路径,采用Floyd算法。Floyd是一种动态规划的算法,代码简洁易懂,对于稠密图效率要高于Dijkstra算法,但是如果数据量过大,由于算法本身时间复杂度是O(n^3),所以效率也很低。#include #include #include #include using namespace st原创 2017-05-09 19:12:58 · 354 阅读 · 0 评论 -
poj 2485 Highways(MST)
题目来源:POJ 2485简单题意及思路:求最小生成树的最大边。思路依旧是Kruskal+并查集。直接把最后加入的一条边输出即可(因为已经排序)。ps:思路没什么问题,反倒是输入数据的时候无从下手...#include #include #include #include using namespace std;const int MAXN=250000+5;原创 2017-05-08 20:36:15 · 195 阅读 · 0 评论 -
poj 1287 Networking(最小生成树)
题目来源:POJ 1287简单题目分析:给你若干点,以及两点间的距离,求将所有点连通的最小距离。思路:最小生成树(MST),并查集+Kruskal算法。Kruskal算法采用贪心策略,将每个边的权值按从小到大排序。首先生成一个与原图相同的点集,每次贪心权值最小的边,如果这个边连接的两个顶点没有连通(无论是直接连通还是间接连通),那么把这个边加上,如果两个顶点已经连通,则跳过这条边,原创 2017-05-07 22:04:55 · 300 阅读 · 0 评论 -
hdu 1051 Wooden Sticks
题目来源:HDU 1051简单分析:有一堆木棍,长度和质量已知,有一台处理这些木棍的机器,这台机器处理木棍时有如下规则:1、处理第一个木棍时需要1秒2、正在处理的木棍如果长度和质量都大于等于上一根木棍的长度和质量,则这次处理不耗费时间,否则耗费1秒。求处理这些木棍的最短时间。思路:类似于求最优解的问题,一般来说都于贪心算法有些关联,这道题就是这样。首先把所有的木棍按长度原创 2017-05-05 13:14:01 · 200 阅读 · 0 评论 -
hdu 1009 FatMouse' Trade
题目来源:HDU 1009简单题目分析:小老鼠有M磅猫食,猫监管着若干存储javabean的仓库,小老鼠所要做的就是用猫食来和它们交易,每个仓库有J磅javabean,与此对应的是,小老鼠要用F磅猫食来交换这J磅javabean,值得一提的是,老鼠并不一定要兑换某个仓库内的全部javabean,而是可以兑换一部分(两者依旧成线性关系,J*a%磅javabean需要F*a%磅猫食来交换),问原创 2017-05-04 21:29:16 · 225 阅读 · 0 评论 -
hdu 1896 Stones
题目来源:HDU 1896 简单题目分析:路上有许多石头,遇到第奇数个石头将其向前踢,第偶数个不做改变,问最后一个石头的位置。注意,如果有多个石头在同一个位置,则将最重的(向前踢移动的距离最小的)石头视作是在这个位置第一个遇到的。思路:典型的优先队列。#include #include #include #include #include using namespa原创 2017-05-03 23:34:35 · 169 阅读 · 0 评论 -
hdu 1004 Let the Balloon Rise
题目来源:HDU 1004没什么好说的,水题一道(由于某种原因debug许久),找到数量最多的气球,直接暴力一发。注意一下strcmp和strcpy的用法,以及某个计数变量的位置(怨念)。#include #include #include #include #include #include #include #include #include using namespac原创 2017-05-01 15:45:33 · 216 阅读 · 0 评论 -
hdu 5706 GirlCat
题目来源:HDU 5706简要题目分析:在n*m的矩阵中,每个点用小写字母表示,让你求矩阵中所包含girl和cat单词的总个数。其中girl单词如下定义:从某个代表‘g’字母的点出发,向与它临近的4个点(边界上则是2个点或3个点)出发,如果是‘i’字母,则继续向四周遍历,直到走过一个完整的单词‘girl’。当且仅当至少有一个字母的位置不同,视作它们为不同的‘girl’单词。cat的定义原创 2017-05-01 10:52:30 · 587 阅读 · 0 评论 -
hdu 5703 Desert
Desert Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)原创 2017-04-30 23:35:15 · 340 阅读 · 0 评论 -
hdu 1241 Oil Deposits
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)原创 2017-04-30 23:01:40 · 212 阅读 · 0 评论 -
poj 3624 Charm Bracelet
题目来源:POJ 3624 简要题目分析:01背包问题,需要注意的是该题对内存限制比较苛刻,如果用二维数组存储状态内存很有可能爆掉,所以用一维滚动数组。以二维状态转移方程为例:w[i]代表第i件物品的重量,v[i]代表第i件物品的价值,dp[i,j]代表把前i件物品放入容量为j的背包内所能获取的最大价值,对于第i件物品有两种选择--放或者不放。伪代码原创 2017-04-30 18:16:55 · 284 阅读 · 0 评论 -
hdu 5326 Work
题目来源:HDU 5326 简要题目分析:公司中有n个职员,每个人(除了老板)都有一个直接上司,上司的上司而且是你的间接上司(树形图),给定k,求有多少人管理k个下属(有多少个下属节点为k)。与一般的并查集不同,该题要求的是并查集中子节点为k的节点数,因此在基础并查集上要做一些改变。#include #include #include #in原创 2017-04-30 14:39:17 · 289 阅读 · 0 评论 -
hdu 5842 Lweb and String
题目来源:HDU 5842 简要题意分析: 给你一个字符串,均为小写字母,每个字母用一个数字来代替,且相同的字母代替的数字也相同,问代替完后所得数组的最大严格递增子序列的长度。 很水的题目,既然要求最大的序列,只需遍历整个字符串,判断有几个不同的字母即可,把不同的字母由小到大1-n编号,得到的长度n就是答案。#include #include #incl原创 2017-04-30 11:07:16 · 262 阅读 · 0 评论 -
Minimum’s Revenge
Minimum’s Revenge Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)原创 2017-04-30 09:58:51 · 307 阅读 · 0 评论 -
Codeforces 854A Fraction
题目链接:CF-854A求a/b的最大值,其中ab满足a+b=n且ab互质。思路:从n/2开始向两边枚举即可。#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include #include using namespace std;int gcd(int x, int y){原创 2017-09-15 19:04:43 · 207 阅读 · 0 评论 -
Codeforces 854B Maxim Buys an Apartment
题目链接:CF-854B简单题,想复杂了。每个房子最多贡献2个邻居,那么以3个单位为循环节,如果K#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include using namespace std;int main(){ int n, k; scanf("%d%d", &原创 2017-09-11 20:15:16 · 223 阅读 · 0 评论 -
Codeforces 853A Planning
日常一水。题目来源:CF-853A题意及简单分析:有n架飞机,原本打算从第1分钟到第n分钟陆续起飞,但是由于某种原因,前K分钟不允许起飞,每架飞机每延迟一分钟(和原起飞时间相比)花费一个cost_i值,而且每架飞机的起飞时间不能比原起飞时间提前,请调整各架飞机起飞的时间,使总cost最小。简单贪心。所有飞机延迟一分钟的总共的花费是一定的,所以你只需要选择当前能起飞的飞机中cost最大的原创 2017-09-10 16:34:32 · 411 阅读 · 0 评论 -
hdu 1789 Doing Homework again
题目来源:HDU1789好久没写题解了,最近有些忙,过几天的网络赛估计也要GG了。题意及思路:给你n个任务,每个任务有一个花费和截止时间,如果你没在截止时间之前完成它就会累计这个任务所需要的花费,每天只能完成一个任务,求最小花费。简单贪心,肯定是优先完成花费高的任务,按花费从大到小排序,同时用一个数组记录每天是否被占用(用来完成任务),如果被占用则向前继续查询,直到前面所有的天原创 2017-09-06 20:32:16 · 203 阅读 · 0 评论 -
2017"百度之星"程序设计大赛 - 资格赛-1002度度熊的王国战略
标题很长很吓人,以我本人的能力,只能水一水,看大佬们AK...这次资格赛状况连连,在许多ACM群里纷纷吐槽,例如1004题意不明确,1002数据太弱,1001???到了第二天才水过1002,惭愧惭愧。比赛结束后,写一个简要题解证明我来过(骗访问量???)。度度熊的王国战略Accepts: 674Submissions: 6056Time Limit:原创 2017-08-07 11:45:42 · 394 阅读 · 0 评论 -
leetcode 367.Valid Perfect Square
题目来源:leetcode 367题目很简单,判断一个数是不是完全平方数,直接二分查找即可,注意到(x/2+1)的平方一定大于x,所以一开始查找的范围就是从1到x/2+1。func isPerfectSquare(num int) bool{ var left,right int left=1;right=num/2+1; for left<=right{原创 2017-07-11 15:36:49 · 345 阅读 · 0 评论 -
poj 3104 Drying
题目来源:POJ 3104题目分析:给你n件衣服,每件衣服有ai含水量,现有两种方式使他们变干:1、自然蒸发,每分钟蒸发1滴水2、烘干机烘干,每分钟蒸发k滴水(此时衣服不再自然蒸发)求在给定k值的情况下,所有衣服变干的最小时间。思路:搜题解。没想到是用二分的方法...看来自己的姿势水平还是太低,对于二分的理解仅限于单调数组中的搜索。在网上偶然看到这样一句话,二分原创 2017-07-06 20:22:02 · 229 阅读 · 0 评论 -
poj 3069 Saruman's Army
题目来源:POJ 3069简单题目分析:在x轴上给你若干点的坐标,这些点的坐标上可以放置一个装置,这个装置可以影响到这个点向左扩展R个单位和这个点向右扩展R个单位的范围(可以理解为该点的一个R邻域)。问至少安装几个装置可以影响到所有给定的点。从左开始贪心即可。从左边第一个点开始,向右扩展R个单位,在这R个单位中找到最右边的点,以这个点为基础放一个装置,再向右扩展R个单位,找到最左边的不原创 2017-07-06 19:29:20 · 163 阅读 · 0 评论 -
hdu 2822 Dogs
题目来源:HDU 2822简单题目分析:bfs+优先队列。给你一个图,图中只包含两种点,不妨记为x点和y点,当你访问x点时,你需要花费单位时间1,而访问y点时不需要时间,给你图中的两个点(保证这两个点都是y点),问你这两个点(一个是起点,一个是终点)之间所需要花费的最短时间。优先队列其实是一种贪心的想法(不知道对不对),其中优先队列是当前时间花费小的优先出队,同时用vis标记该点是原创 2017-06-06 13:14:53 · 247 阅读 · 0 评论 -
HDU 2132 An easy problem
题目来源:HDU 2132思路:坑题一道。打表+long long,注意循环变量的类型也要设置为long long。#include #include #include #include using namespace std;const int MAXN=1e5+5;long long temp[MAXN];void init(){ long lon原创 2017-06-04 22:54:49 · 175 阅读 · 0 评论 -
hdu 1272 小希的迷宫
题目来源:HDU 1272简单分析:又补一题,题意很简单,判断一个无向图是不是树,满足两个条件就行:1.连通 2.无环于是乎,并查集就登场了。首先建立一个空图,每当向其中增加一条边时,判断两个端点是否在连通分量内,如果在,那么就会有环,不能成树。把边都加入后,再判断这些端点的根节点数目,只有一个才是树,其实树的边满足这个公式:p=q-1,p为边数,q为顶点数。#includ原创 2017-05-26 22:30:56 · 277 阅读 · 0 评论 -
hdu 1879 继续畅通工程
题目来源:HDU 1879简单思路:补了一道好久之前的题,最小生成树,只不过这道题里面可能有已经连好的一部分边,将这些边的权值设为0即可,因为本来就已经连好,不需要任何花费。然后就是Kruskal求MST就好了。#include #include #include #include #define loop(i,n) for(int i=1;i<=(n);++i)using原创 2017-05-26 19:57:23 · 167 阅读 · 0 评论 -
2017 计蒜之道 初赛 第二场 B. 百度的科学计算器(简单)
python赛高!三行代码解决一个简单计算器!如下:b=input()a=input()print("%.6f"%eval(a))if '.' in a else print(int(eval(a)))如果用c&c++,那怕是要上百行的代码...其中eval函数是一个计算字符串的函数,根据题目规则,如果两个数中有一个浮点数那么结果就是浮点数,那么if '.' in a原创 2017-05-26 00:51:23 · 299 阅读 · 0 评论 -
Codeforces 797A k-Factorization
题目来源:CF 797A简单题目分析:给定n和k,问:是否存在k个数(均大于1,但可以相同)的乘积等于n。若没有,输出-1,若有且有多组数据,任意输出一组数据即可。思路:唯一分解定理:一个非质数一定可以分解为若干质数的乘积(质数的话则是它本身),而且这种分解是最彻底的,如果你分解的因子中还有合数,那么这个合数可以继续分解,直到所有因数都是质数。那么,这个题目就可以转化为求质因数原创 2017-05-25 23:45:42 · 308 阅读 · 0 评论 -
BestCoder Round #59 (div.1)
题目来源:HDU 5500简单题目分析:给一个1到n的乱序,每一次操作只能把一个数放到序列的最前端,求最小操作次数,使得序列有序。思路:思维题,从最大的数向前找,即从n开始向前找n-1,如果找到n-1,则继续向前找n-2,直到K这个数找不到为止,那么最少操作数就是K.#include #include #include using namespace std;原创 2017-05-25 10:38:58 · 202 阅读 · 0 评论 -
poj 1410 Intersection
题目来源:POJ 1410简单题目分析:求线段和矩形是否相交,注意在本题中,如果线段在矩形内部也视作相交。思路:1. 如果线段的两个端点都在矩形内,那么相交。2. 如果线段的两个端点,一个在内部,一个在外部,那么相交。注意,这两种情况包含端点在矩形边界的特殊情况。稍微复杂一些的是,如果两个端点都不在矩形内部,那么分类讨论:首先是两种特殊情况,斜率为0和斜率不存在的情原创 2017-05-24 17:09:50 · 272 阅读 · 0 评论 -
poj 1269 Intersecting Lines
题目来源:POJ 1269简单题目分析:求两条直线的位置关系(相交、平行、重合),若相交则求出交点坐标。思路:计算几何入门,我的代码不具有任何参考价值!(因为用的是最简单的办法,高中那一套理论)#include #include using namespace std;struct point{ double x,y;}pp[5];struct l原创 2017-05-21 22:31:41 · 200 阅读 · 0 评论 -
leetcode 476 Number Complement
题目来源:LeetCode 476简单题目分析:把一个数取反。但是,肯定不是直接用~操作,因为这样会把最高位1之前的前缀0也取反,因此我们所需要做的就是找到最高位1所在的位置,下面附上我的代码:int findComplement(int num){ int iThBite=0; //记录最高位1的位数 int ans=num,temp,i; while(nu原创 2017-05-21 09:53:56 · 246 阅读 · 0 评论 -
leetcode 561 Array Partition I
题目来源:LeetCode 561简单题目分析:给你2n个数,让你配成n对,并求∑min(ai,bi)的最大值。思路:先把这2n个数排好序,然后取下标为偶数的项即可,下面给出证明:1.定义ans=min(a1,b1)+min(a2,b2)+...+min(an,bn)(所要求的值)2.不妨假设bi≥ai,则ans=a1+a2+a3+...+an3.定义Sn=a1+b1+原创 2017-05-20 23:18:48 · 197 阅读 · 0 评论 -
2017 计蒜之道 初赛 第一场 A.阿里的新游戏
题目背景是成三棋,题目要求是输入小红和小明的棋子位置,用坐标表示(棋盘的坐标系建在原点中心,横纵坐标都是从-3到3,共9个格子),然后输出小红的成三数。(这个线段上有三个小红的棋子)。题目描述很简单,但是我花了一个小时才AC,而且用的是最笨的方法,枚举了16种可能的情况,正解肯定不会是这个,但好在还是AC了...这也是我第一次做这种线上赛,发现自己的实力还是很弱,我清楚的记得比赛开始10分原创 2017-05-20 20:37:09 · 604 阅读 · 0 评论 -
leetcode 461 Hamming Distance(位操作入门)
题目来源:LeetCode 461简单题目分析:求a和b二进制表示中,一共有多少不同的位。例如1的二进制表示为0001,4的二进制表示为0100,那么1和4不同的位是2.一开始我的思路很简单,直接遍历32位整数的每一位,代码如下:int hammingDistance(int x, int y) { int i,ans=0; for(i=0;i<32;++i)原创 2017-05-20 09:50:53 · 284 阅读 · 0 评论