博客专栏  >  编程语言   >  算法之路

算法之路

算法改变世界,我爱ACM。

关注
5 已关注
236篇博文
  • hihoCoder1330 数组重排

    题意小Hi想知道,如果他每次都按照一种固定的顺序重排数组,那么最少经过几次重排之后数组会恢复初始的顺序?具体来讲,给定一个1 - N 的排列 P,小Hi每次重排都是把第 i 个元素放到第 Pi个位置上...

    2017-09-17 11:10
    26
  • 2017CCPC 网络选拔赛1003 Ramsey定理

    Ramsey定理    任意6个人中,一定有三个人互为朋友,或者互相不是朋友。证明这里我就不证明了。下面链接有证明 鸽巢原理 Ramsey定理AC代码#include #include usi...

    2017-08-20 10:02
    207
  • UVALive - 3938 (线段树,区间查询)

    思路:详细分析见训练指南P200P200。注意可能答案的起点在左区间,终点在右区间AC代码#include #include using namespace std; typedef long l...

    2017-08-18 13:22
    171
  • PAT Public Bike Management (dfs)

    思路:你的答案必须满足三个条件: 1.在所有路径中选择最短的; 2.如果路径相等,则选择从PBMC中送出最少的; 3.如果路径相等且PBMC送出的车也相等,则选择带回最少的。 注意:这题很恶心...

    2017-08-14 08:54
    49
  • PAT All Roads Lead to Rome 单源最短路

    思路:单源最短路末班就好了,字符串映射成数字处理。AC代码//#define LOCAL #include #include #include #include #include #incl...

    2017-08-14 11:11
    200
  • 有趣的排序 (贪心+思维)

    题意:度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作: 任取数组中的一个数然后将它放置在数组的最后一个位置。 问最少操作多少次可以使得数组从小到大有序? ...

    2017-08-13 15:29
    179
  • 不等式数列 (动态规划)

    题意:度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 ‘>’ 和 ‘<’ )使其成为一个合法的不等式数列。但是现在度度熊手中只有k个小...

    2017-08-13 15:45
    67
  • 买帽子 (hash)

    思路:cnt[i]cnt[i]表示数字i出现的次数,在输入的同时记录每个数字出现的次数。最后从0枚举到1000判断第三个是否存在,存在则记录该数字。#include #include const ...

    2017-08-13 12:15
    176
  • 度度熊回家 (模拟)

    思路:先计算出从第0个坐标到第n-1个坐标的距离,然后枚举忽略[1,n−2][1, n-2]的点,直接可以得到需要走的距离。复杂度O(n)O(n),当然暴力枚举再重新计算也是可以AC的,复杂度O(n2...

    2017-08-13 12:35
    161
  • 寻找三角形 (海伦公式)

    海伦公式:S=p∗(p−a)∗(p−b)∗(p−c)−−−−−−−−−−−−−−−−−−−−−−√S=\sqrt{p*(p-a)*(p-b)*(p-c)},其中a,b,ca,b,c是三角形边长,pp是...

    2017-08-13 13:03
    230
  • 地牢逃脱 (BFS)

    题意:给定一个 n 行 m 列的地牢,其中 ‘.’ 表示可以通行的位置,’X’ 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指...

    2017-08-13 11:38
    262
  • 合唱团 (线性dp)

    题意:有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积...

    2017-08-13 10:21
    176
  • UVA - 11636 Hello World! (贪心)

    思路:复制次数最少并且可以部分复制,那么贪心地让当前尽量多的复制,如果最后一次复制会超过n,那就部分复制。即满足(1<<x)≥n(1<<x) \geq n并且x尽量小。AC代码#include co...

    2017-08-12 17:39
    374
  • PAT1118. Birds in Forest (并查集)

    思路:并查集一套带走。AC代码#include #include #include using namespace std; const int maxn = 10000+5;int par[m...

    2017-08-06 10:09
    184
  • PAT1119. Pre- and Post-order Traversals

    思路:中序遍历–根结点,左子树,右子树;后序遍历–左子树,右子树,根结点。 那么在找到根结点之后就可以开始划分左右子树了。左子树的先序第一个节点是根,左子树的后序最后一个节点是根。 例如 1 2...

    2017-08-05 12:46
    337
  • PAT1116. Come on! Let's C (map)

    思路:模拟一下就好了,map用来记录每个人的排名。AC代码#include #include #include #include #include using namespace std; ...

    2017-08-05 10:00
    110
  • PAT1117. Eddington Number

    思路:搞懂题意是关键–E满足有共有E天骑车的距离超过E米,求最大的E! 将数组排序,我们假设最大的E是e,e满足条件有e天骑车超过e米,并且e+1不满足有e+1天骑车超过e+1米。那么我们可以逆序统...

    2017-08-05 10:09
    112
  • PAT 1002. A+B for Polynomials

    思路:就是两个多项式做加法–指数相同的相加即可,输出的时候按照指数递减输出,并且系数为0的项不输出。AC代码#include #include #include using namespace ...

    2017-08-04 12:38
    104
  • PAT 1003. Emergency 单源最短路

    思路:定义ways[i]ways[i]表示到达i的最短路径数量,d[i]d[i]表示到达i的最短径,cnt[i]cnt[i]表示最短路径到达i的最多人数,w[i][j]w[i][j]表示从i到j的距离...

    2017-08-04 16:00
    246
  • PAT1001 A+B Format

    思路:每三位分割,注意符号,首位不要出现逗号。AC代码#include #include using namespace std;void solve(int c) { if(c < 0)...

    2017-08-04 12:04
    290

Java之旅
8655

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部