![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM
文章平均质量分 54
记录ACM的题解
EleganceCoding
这个作者很懒,什么都没留下…
展开
-
hdu5253连接的管道(最小生成树)
老 Jack 有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行灌溉了。当老 Jack 买完所有铺设在每块农田内部的管道的时候,老 Jack 遇到了新的难题,因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接,老 Jack 就需要额外再购进跟这两块农田高度差相等长度的管道。 ...原创 2019-01-26 11:15:35 · 187 阅读 · 0 评论 -
hdu1172猜数字(暴力枚举)
主要难点在于判断是否满足所给条件,枚举1000到9999的所有数,看满足所有条件的数的个数,如果大于1则不确定,如果等于1,则就是这个数。实现如下(题目附后)#include <stdio.h>#include <string.h>#include <algorithm>#define min(a,b) a<b?a:b#define M...原创 2019-01-24 12:45:00 · 340 阅读 · 1 评论 -
hdu1286找新朋友
欧拉函数:求小于n的正整数中与n互质的数的个数。 通式:,其中pi指小于x的所有质因数。 例如 10 的所有质因数为 2 5 φ(10)=10*[ (1-1/2)*(1-1/5) ]=4本题就是求欧拉函数值。实现:(题目附后)#include <stdio.h>#include <string.h>#define M 32768u...原创 2019-01-24 09:40:53 · 103 阅读 · 0 评论 -
Race sorting题解
题目描述星际争霸(StarCraft)是暴雪公司制作发行的一款即时战略游戏。游戏描述了26世纪初期,位于银河系中心的三个种族在克普鲁星际空间中争夺霸权的故事。三个种族分别是:人类(Terran),异虫(Zerg),星灵(Protoss)。现在tokitsukaze拥有n个单位,每个单位的编号是1-n,且没有任何两个单位编号相同。每个单位可能是人类,异虫,星灵中的一种。tokitsukaze定...原创 2018-12-08 20:44:42 · 197 阅读 · 0 评论 -
Kvass and the Fair Nut(思路+数学)
The Fair Nut likes kvass very much. On his birthday parents presented him nn kegs of kvass. There are vivi liters of kvass in the ii-th keg. Each keg has a lever. You can pour your glass by exactly 11...原创 2019-01-22 16:41:37 · 468 阅读 · 0 评论 -
Wpremig的AH之战题解
题目AH是auction house,拍卖行的缩写。众所周知,为了道具流通,基本上每个网络游戏都会有拍卖行或者类似拍卖行的系统存在。Wpremig最近喜欢上玩《XX传奇》,游戏为了吸引玩家,推出了一种"抢拍模式",在原有的拍卖行竞价基础上,增加了一条规则:只有最早竞价的两个人有资格竞价。原本规则如下:所有物品初始价格为0, 每次加价必须在[1,N]内,并且不存在一口价功能,只有一个价格上限...原创 2018-12-29 20:31:29 · 182 阅读 · 0 评论 -
AFei Loves Magic题解(递归记忆化)
有时候递归有很多重复计算,造成时间复杂度很大,可以采用记忆化的方法来减小时间复杂度。例题:牛客AFei Loves Magic#include<stdio.h>const long long mod = 1e9+7;long long num[1000000]; //利用数组记录计算过的值long long func(int x){ if (x==1...原创 2019-01-06 16:35:17 · 241 阅读 · 0 评论 -
CodeForcesMaximum splitting(思路)
困惑了好久,还以为用dp,其实就是一道简单的思路题,如果通过观察发现,除了1 2 3 5 7 11不能被分解外,其它任何数,如果是偶数可以被分分解为4 或 6,如果是奇数可以分解为4或6或9。通过计算发现,如果是偶数,那么最大的个数就是n/4,如果是奇数,因为多了一个9减去1即可。具体的数学原理,我也不太清楚,持续探索中。打开方式不对,是很难找到出口的。实现如下(题目附后)#inc...原创 2019-01-25 10:09:21 · 129 阅读 · 0 评论 -
CF Equality (水题)
You are given a string ss of length nn, which consists only of the first kk letters of the Latin alphabet. All letters in string ss are uppercase.A subsequence of string ss is a string that can be d...原创 2019-01-22 11:12:15 · 329 阅读 · 1 评论 -
c/c++队列的代码实现
基本介绍数组是一种神奇的工具,我们可以根据自己的需要来设计一种数据结构,队列也是一个最佳的例子。它实现的是数据的先入先出功能,顾名思义,就是排队,先排队的先办事。名词术语/函数名称back() 返回最后一个元素empty() 如果队列空则返回真front() 返回第一个元素pop() 删除第一个元素push() 在末尾加入一个元素size() 返回队列中元素的个数以下为...原创 2018-11-14 11:14:59 · 1113 阅读 · 0 评论 -
c/c++栈的代码实现
基本介绍数组是一种神奇的工具,我们可以根据自己的需要来设计一种数据结构,栈就是一个最佳的例子。可以把它想象成一个容器,现在往里面倒水,然后把水倒出,先倒入的水后倒出,这就是栈实现的功能。名词术语我们往栈中从左到右插入元素,左端为栈底,右端为栈定入栈 push(x); 在栈顶增加元素出栈 pop(); 移除栈定元素size(); 返回元素数目top()...原创 2018-11-13 22:23:14 · 2006 阅读 · 0 评论 -
How Many Answers Are Wrong解题报告(带权并查集)
题目TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To begin with, TT sho...原创 2019-01-19 11:44:59 · 371 阅读 · 1 评论 -
Wireless Network 题解(并查集应用)
Time limit Memory limit OS 10000 ms 65536 kB Linux A - Wireless NetworkAn earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wirele...原创 2019-01-21 15:12:08 · 487 阅读 · 0 评论 -
I NEED A OFFER(01最小背包)
题目链接:K - I NEED A OFFER! 本题求可能得到至少一份offer的最大概率,可以求它的的反面事件,一份offer都得不到的最少概率,可以用01最小背包来球。状态转移方程dp[j]=Min(dp[j],dp[j-a[i]]*(1-b[i]));#include <stdio.h>#include <string.h>#include <...原创 2019-01-14 16:21:11 · 288 阅读 · 0 评论 -
Piggy-Bank题解 (另一种完全背包)
Time limit 1000 ms Memory limit 30000 kB OS Linux Before ACM can do anything, a budget must be prepared and the necessary financial support obt...原创 2019-01-03 19:21:47 · 663 阅读 · 0 评论 -
01背包,完全背包,多重背包
01背包 NYOJ 289 #include <iostream>#include <stdio.h>#include <string.h>#define max(a,b) a>b?a:b;int main() { int n,v,w,c,j; int f[1005]; while(~scanf("%d %d...原创 2019-01-01 20:39:23 · 1138 阅读 · 2 评论 -
I - Proud Merchants 题解
Time limit 1000 ms Memory limit 65536 kB OS Windows 1.题目:Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in th...原创 2019-01-01 20:06:37 · 138 阅读 · 0 评论 -
饭卡问题题解(对01背包更深入的应用)
Time limit 1000 ms Memory limit 32768 kB OS Windows 题目电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少...原创 2019-01-01 11:44:55 · 495 阅读 · 0 评论 -
最长公共子序列(LCS)
一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。参考博客:动态规划 最长公共子序列 过程图解例题:F - Common Subsequence#include <stdio.h>#include <string>#include <string.h>#define M 1000#def...原创 2019-01-15 18:18:32 · 96 阅读 · 0 评论 -
FatMouse's Speed(最长上升子序列+路径记录)
Time limit 1000 ms Memory limit 32768 kB Special judge Yes OS Windows 题目:FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want t...原创 2019-01-17 16:01:22 · 353 阅读 · 0 评论 -
最长上升子序列(LIS)
1) 给出一串数字,求递增的最长子序列长度。时间复杂度为n^2#include <stdio.h>#define MAX 100000#define max(a,b) a>b?a:bint main() { int n,ans=0,num[MAX],dp[MAX]; scanf("%d",&n); for(int i=0;i<...原创 2019-01-12 17:33:48 · 125 阅读 · 0 评论 -
CodeForcesMaximum splitting(思路)
困惑了好久,还以为用dp,其实就是一道简单的思路题,如果通过观察发现,除了1 2 3 5 7 11不能被分解外,其它任何数,如果是偶数可以被分分解为4 或 6,如果是奇数可以分解为4或6或9。通过计算发现,如果是偶数,那么最大的个数就是n/4,如果是奇数,因为多了一个9减去1即可。具体的数学原理,我也不太清楚,持续探索中。实现如下(题目附后)#include <stdio.h>...原创 2019-05-05 17:38:45 · 95 阅读 · 0 评论 -
hdu4561连续最大积
小明和他的好朋友小西在玩一个游戏,由电脑随机生成一个由-2,0,2三个数组成的数组,并且约定,谁先算出这个数组中某一段连续元素的积的最大值,就算谁赢! 比如我们有如下随机数组: 2 2 0 -2 0 2 2 -2 -2 0 在这个数组的众多连续子序列中,2 2 -2 -2这个连续子序列的积为最大。 现在小明请你帮忙算出这个最大值。 Input第一行输入一个正整数T,表示总共有T...原创 2019-01-25 21:14:12 · 179 阅读 · 0 评论 -
Problem J. Jhadgre爬楼梯题解
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目继上次Jhadgre在楼梯上跳台阶玩了很久之后,他获得了一个很强(la)力(ji)的能力,那就是上楼梯的时候可以跨任意偶数级台阶....今天上完课,Jhadgre又开始了他的跳台阶之旅,现在他想知道跳到...原创 2018-12-30 11:04:25 · 180 阅读 · 0 评论 -
CF Petr and a Combination Lock的两种解法
1:二进制枚举子集参考:二进制枚举子集--最通俗易懂的讲解#include <iostream>#include <stdio.h>int main() { int n,ans,num[20]; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&num[i])...原创 2019-01-05 17:39:10 · 285 阅读 · 2 评论 -
DFS入门问题数的全排列全面解析
问题:P1706 全排列问题刚开始学DFS的时候,我也感觉很迷惑,不知道它的来龙去脉,刷了些题之后也是感觉懵懵懂懂的,只能尝试套模版,但随着学习的深入,学了BFS,背包问题等更复杂的算法之后终于对搜索有了更全面的认识。如果你和我之前一样对搜索感到迷惑的话,千万不要放弃,争取每次理解一点,随着学习的深入,一定会慢慢体会到它的精髓的。加油,朋友!我们可以把它当成把1-n的扑克牌放到n个小盒子的...原创 2019-01-04 10:30:41 · 492 阅读 · 0 评论 -
pots题解(BFS简单应用)
题目You are given two pots, having the volume of A and B liters respectively. The following operations can be performed:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the p...原创 2018-12-26 14:18:05 · 1682 阅读 · 0 评论 -
F - Prime Path题后反思
F - Prime Path原创 2018-12-24 13:50:15 · 158 阅读 · 0 评论 -
迷宫问题
定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一个5 × 5的二维数组,表示一个迷...原创 2018-12-08 11:38:34 · 172 阅读 · 0 评论 -
Tempter of the Bone
暑假的时候,小明和朋友去迷宫中寻宝。然而,当他拿到宝贝时,迷宫开始剧烈震动,他感到地面正在下沉,他们意识到这是一个陷阱!他们想尽一切办法逃出去。迷宫是一个大小为 N*M 的长方形,迷宫中有一扇门。一开始,门是关着的,他会在第 t 秒的时间打开。因为,小明和朋友必须在第 t 秒到大门口。每一秒,他都可以向上下左右四个方向移动一个点。一旦他移动了,他刚才所在的点就消失,(这意味着他不能回到他已经走过...原创 2018-12-08 11:21:31 · 185 阅读 · 0 评论