Kindergarten Physics (HDU-6812) (1011)
题意:给你两个质点a和b,然后给出a和b的质量和它们之间的距离h,问你经过万有引力的作用之后,在经过t0时间之后,它们之间的距离。
思路:这道题的话,我们需要套用物理公式。$F(万有引力)=(Gxmaxmb)/rxr$,$F=ma$,$S=(1/2)xaxtxt$。
AC代码:
1 | #include <bits/stdc++.h> |
Blow up the Enemy (HDU-6803) (1002)
题意:给定有n种武器,每种武器有2种属性:伤害A和冷却时间D,张三和爸爸各从n种武器种选择一个武器进行对战。张三和爸爸各从n种武器种选择一个武器进行对战。每人初始HP=100,每种武器每次攻击可以使得对手HP值减去Ai,HP≤0的一方出局。初始时武器未冷却,每攻击一次,武器冷却Di时长,Di时间后,可立刻攻击。爸爸每次从n种武器种等概率地随机选择一种武器,若二人的HP同时小于等于0,那么二人各有0.5的概率获胜。请帮助张三选择武器,使得他能够以最大的概率获胜。
思路:这道题的话,我们可以先算出每种武器打掉100血的时间,然后选择最小的,然后再分别与每种武器进行比较,计算概率即可。
AC代码:
1 | #include <bits/stdc++.h> |
Equal Sentences (HDU-6806) (1005)
题意:给你一串字符串S,现在有两个要求:1. S中的单词的多集与T中的单词的多集相同。2. 对于一个单词概要,它在S中的第i次出现和在T中的第i次出现的索引差异不超过1。(句子中的第k个单词的索引是k。)只要单词在两个句子中出现至少i次,这对所有的a和i都成立。然后我们可以说S和T几乎相同。但是请注意,“几乎相等”不是一个等价关系,不像它的名字。也就是说,如果句子A和B接近相等,B和C接近相等,那么A和C可能不接近相等。然后问你有多少个句子与S几乎相同。
思路:这道题的话,在读完题之后和jp在讨论之后,发现就是如果前后单词是一样的话,那么就算一个句子。所以我想到了上楼梯,和这个有异曲同工之妙。于是我就列了dp方程,那就是n=1的时候,只有1种;n=2的时候分两种情况,相等或者不相等;n>=3的时候,也是分相等和不相等两种情况。当n>=3的时候,要是当前和上一个相等,那就直接$dp[i]=dp[i-1]$;要是不相等,那就是等于前两个相加$dp[i]=dp[i-1]+dp[i-2]$。
AC代码:
1 | #include <bits/stdc++.h> |
Deliver the Cake (HDU-6805)(1004)
题意:给出一个nm的无向图,有边权。张三在起点s,目标是t。点分成左点右点和中间点,到左点的时候必须用左手,到右点的时候必须用右手,中间点没有特殊要求。张三每次切换左右手都要花费额外的时间,询问起点到终点的最短路。
思路:这道题的话,我们把每个点拆成两个点,L点拆成两个L,R点拆成两个R,M点拆成一个L一个R。然后跑Dijkstra+优先队列即可。
AC代码:
1 | #include <bits/stdc++.h> |