
ACM
打代码的小明
你会的别人都会
展开
-
快速理解哈夫曼编码和其中的贪心思想
目录1.哈夫曼编码原理2.哈夫曼树2.1构造规则2.2构造时要注意的内容3编码3.1编码规则4解码4.1解码规则4.2解码要注意的内容5.实例代码6.贪心思想7.总结1.哈夫曼编码原理 根据字符出现的概率大小进行编码,出现概率高的字符使用较短的编码,出现概率低的字符使用较长的编码,从而使平均码长尽可能短。是数据压...原创 2020-04-28 19:20:07 · 4686 阅读 · 0 评论 -
POJ2386 Lake Counting & 2018年蓝桥杯I题全球变暖
POJ2386 Lake Counting 和 2018年蓝桥杯I题 全球变暖 都属于深搜的同一种类型的题,都与计数有关,比较有共同点和举一反三的感觉所以放在一起讨论一下。POJ2386 Lake Counting题目大意:给出N x M大小的空间,每一点可能是空地可能是湖,其中湖用’W’表示,空地用’.'表示,如果一个点是湖,如果该点周围的八个点中也存在湖那么这两点就构成同一片湖。求这片空...原创 2019-11-30 17:09:34 · 308 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 Characters with Hash
这是一道水题,但是觉得其中寻找先导零使用的方法很好用,就决定写下来.用的是C题目大意:输入T组数据,每组数据输入一个根字母、一个数字n代表将要输入的字母的个数、n个连续字母,然后用根字母减去从左往右的每一个字母,得到的结果总共有几位最后就输出几。其中要除去先导零,首个字母减完后只有一位数就算一个,中间的若只有一位就算两个,若结果全是0,输出1。举例:12 34 56 输出:600 12 ...原创 2019-08-04 21:30:24 · 251 阅读 · 0 评论 -
POJ-3083 Children of the Candy Corn
这是一道深搜加广搜的题目,在房间里模拟走迷宫走了两圈才搞清楚原理,因为在一些小细节的地方出错,花了很久才解决了这道题,对我来说还是很有意义的一道题,用的是C写的题目大意:在迷宫中从起点走到终点,每走一步加一,起点和终点也要加一。要求输出三种不同的移动方式所需的步数,分别是一直靠着左边走、一直靠着右边走、最短路径。靠左和靠右走有点不好理解,接下来重点研究一下。难点:靠左走的意思是:每走一步...原创 2019-08-19 17:29:21 · 323 阅读 · 0 评论 -
POJ - 1852 Ants
这题只要有想象力就能很简单过题意:一根n厘米长的线上有多只蚂蚁,蚂蚁顺着线走,但方向不知道,如果两只蚂蚁碰到一起就都掉头然后继续前进直到从线的两端掉下。蚂蚁每次移动的速度为1cm/s 。要求输出所有蚂蚁都掉下去需要用的最短时间和最长时间思路:时间最短:如果所有蚂蚁都不会互相碰到一起就不会额外产生多余的步数,则以线长度的中值为界,左边的都往左走,右边的都往右走,这样所有蚂蚁都不会碰到一起而...原创 2019-08-22 18:04:28 · 244 阅读 · 0 评论 -
HDU 1003 Max Sum
这是一道动态规划的题目,刚学了一点动态规划还不太熟悉,这一道题研究了很久才做出来题目大意:输入n个数字,其中的数字可以按排列顺序相加,找出相加值最大的子序列,输出该最大值和起点终点思路:该题使用dp来做,整体的思路根据 max{dp[i]+sum, dp[i]} 来判断, 数字相加不是一遇到负数就停止相加,而是直到发现之前相加的结果成了负数为止。我们可以设置变量ans存储最终的结果、变量...原创 2019-09-19 20:48:07 · 233 阅读 · 0 评论 -
最短路径之寻找最大边的最小值(Floyd、Dijkstra、Kruskal)
最近在做最短路径的题目,有几道题是同一个类型的,题意基本都是寻找从A到B所有路径中,路径的最大边的最小值。这样类型的题有POJ - 2253 Frogger, UVA - 10048 Audiophobia,POJ - 1797 Heavy Transportation这样的题有很多种解题方法,最简单粗暴的就是用Floyd,还可以用Dijkstra,也可以用最小生成树Kruskal我以POJ ...原创 2019-10-04 16:35:49 · 3855 阅读 · 0 评论 -
素数判断方法总结
今天想总结一下素数的几种求法暴力方法:最简单的方法就是从2开始循环到n,如果没有一个数能被n整除就是素数#include<stdio.h>int isPrime(int n) { for(int i=2; i<n; i++) { if(n%i == 0) return 0 ; } return 1 ;}i...原创 2019-10-05 21:55:37 · 817 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 sum(欧拉筛)
学了欧拉筛之后找了这道题来练练手,结果写了好久才过了题意:一个数字可以由多个数字相乘构成,统计一个数能有几种构成方法f(i),但是相乘的数字必须是无平方数,例如:6=2x3=3x2=1x6, 但是 8=2x4=2x2^2这样就不行。a x b 和b x a要算两个,a x a算一个。最后需要输入一个数n,输出1~n所有数构成方法的和理解:需要得到无平方数只有两种可能:1和素数,所以我们需要...原创 2019-10-05 22:47:41 · 273 阅读 · 0 评论