
HDU
文章平均质量分 63
Kim0403
这个作者很懒,什么都没留下…
展开
-
HDU 5690 ALL X
全是由数字x组成的m位数可表示为(10m-1)/9*x。 则判断 (10m-1)/9*x%k == c 的真假可转化为判断 (10m-1)*x%(9*k) == 9*c 的真假(对于加减乘运算,取模可以移动,对于除法不可行。但此处 10m-1 表示有m个9组成的数,一定可以整除9,故可将9和k放在一起当模数)。接下来用快速幂就可以了。 #include int t; long long原创 2016-05-27 21:46:41 · 350 阅读 · 0 评论 -
HDU 3368 Reversi
简单的搜索。详见代码。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CPY(A, B) memcpy(A, B, siz原创 2016-07-26 17:23:44 · 429 阅读 · 0 评论 -
HDU 5686(斐波那契数列大数)
通过分析,可以发现题目就是一个斐波那契数列,但数很大,所以果断高精度模板。 #include #include #include #include using namespace std; string &_string_add_string (const string &a, const string &b, string &res) { int sum_value =原创 2016-05-27 21:54:05 · 707 阅读 · 0 评论 -
HDU 1003(水DP)
#include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long LL; typedef unsigned long long uLL; using namespace std; //算法分析:求原创 2016-05-27 21:36:22 · 374 阅读 · 0 评论 -
HDU 5706 GirlCat
搜索题,简单DFS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CPY(A, B) memcpy(A,原创 2016-07-30 01:31:15 · 417 阅读 · 0 评论 -
HDU 5710 Digit-Sum
5*2=10,S(5*2)=1,2*S(5)=10; 6*2=12,S(6*2)=3,2*S(6)=12; 7*2=14,S(7*2)=5,2*S(7)=14; 8*2=16,S(8*2)=7,2*S(8)=16; 9*2=18,S(9*2)=9,2*S(9)=18; 规律显然,其实就是满十进1,每位数字之和便小了9。 假设n里有L位数为5-9,那么显然满足:S(2n)原创 2016-07-30 01:58:23 · 815 阅读 · 0 评论 -
HDU 3366 Passage (dp)
题意:n条通道和m百万元,每一条通道有三种情况,一是直接出去,概率是p,二是碰上士兵,给1百万块再回去,概率是q,或者是死路,概率是1-p-q。问最终出去时最优可能性。 思路:概率dp,既然问最优可能性,肯定是最有可能跑出去的情况最好了,就算跑不出去也要少碰士兵,所以先按p/q从大到小排序,然后dp[i][j]代表在第i个通道,还有j万元的时候能出去的概率。 能直接出去的话,最终结果加原创 2016-07-28 00:54:33 · 526 阅读 · 0 评论 -
HDU 3232 Crossing Rivers (数学期望)
船的初始位置随机,要求期望。 那么船从河上正好往东岸赶的几率是1/2,往西岸去再回来的几率是1/2 #include #define CPY(A,B)memcpy(A,B,sizeof(A)) typedef long long LL; typedef unsigned long long uLL; const int MOD=1e9+7; const int INF=0x3f3f3f3f;原创 2016-08-05 17:24:02 · 410 阅读 · 0 评论 -
HDU 3697 Selecting courses
暴力,贪心 每门课按结束时间从小到大排序,结束时间相同的按开始时间从小到大排序,这样按顺序选一定最优。 由题意可知,这个人开始选课的时间自由,一旦开始选课,只能每五分钟选一次,开始时间分别取0,、1、2、3、4,剩下的选课时间就固定了,暴力查找一下即可。 #include #include #include #include #include #include #include #inclu原创 2016-08-05 09:12:07 · 380 阅读 · 0 评论 -
HDU 4586 Play the dice (数学期望)
数学期望就是每次可能结果的概率乘以其结果的总和。 比如1 2 3 4 5 6 数学期望就是3.50. 掷到一个特殊面只是得到了一个再次投掷的机会,和第一次投掷的效果完全一样。特殊面的数值无关紧要。 sum/n*(1+q+q^2+q^3+……+q^k) q=m/n k=inf 所以sum/n*(1/(1-m/n)) = (sum/n)*(n/n-m) =sum原创 2016-07-27 16:45:22 · 443 阅读 · 0 评论 -
HDU 3233 Download Manager
下载不会中断,任务总量一定,网速全程最高。那么,直接除就行,不用模拟。 #include #define CPY(A,B)memcpy(A,B,sizeof(A)) typedef long long LL; typedef unsigned long long uLL; const int MOD=1e9+7; const int INF=0x3f3f3f3f; const LL INFF=0原创 2016-08-05 17:31:44 · 474 阅读 · 0 评论 -
hdu 5443 The Water Problem
找区间内最大值。数据范围,才10*1000*100,果断暴力。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #原创 2016-08-05 09:06:27 · 321 阅读 · 0 评论 -
HDU 5688
分析题目,发现字符排序后,查重就行。用map比较好写。 #include #include #include #include #include #include using namespace std; mapcnt; int main() { cnt.clear(); char nn[45]; int N; cin>>N; while (N--)原创 2016-05-27 21:58:36 · 351 阅读 · 0 评论 -
HDU 3361 ASCII
没啥可说,直接按char型输出即可。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d原创 2016-07-26 17:15:06 · 477 阅读 · 0 评论 -
HDU 3363 Ice-sugar Gourd
就两种水果,只要各自数目非偶,那就做不到。 都是偶数,那么一定可以两刀解决问题,维持一个总长一半的区间,使其内水果之一,是它总数的一半。问题解决。 #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2016-07-26 17:20:16 · 580 阅读 · 0 评论 -
HDU 4593 Robot
直接都统计一次,出现两次就是大于1呗…… #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CPY(A, B原创 2016-07-27 16:50:23 · 293 阅读 · 0 评论 -
HDU 4588 Count The Carries
从a加到b,统计二进制进位总次数,纯粹暴力,肯定超时。 所以转换成统计从0-a二进制表达的各位1的个数,0-b各位的1的个数,后者减前者对应位,即可求出每位有多少个1。然后当前位1的个数/2,就是当前位的总进位数,后面的加上前一位答案除二,再除二,累加即可推出总数。 那么如何统计每一位上1的个数呢???卡壳卡了两个小时…… 以下是规律: 1 1 1原创 2016-07-27 16:46:41 · 468 阅读 · 0 评论 -
HDU 5702 Solving Order
写个结构体,按数量排序,输出对应颜色。 开始怕有重复来着,觉得先不考虑那种情况,结果过了。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2016-07-30 01:15:03 · 487 阅读 · 0 评论 -
HDU 5704 Luck Competition
设自己会选x这个数,那么x就要成为幸运数。 所以可得方程:((sum+x)/n) * (2/3) = x 经过化简,x=2*sum/ (3*n-2) 还需要统计一下和x相同大小数字的个数。 #include #include #include #include #include #include #include #include #include #include #include #i原创 2016-07-30 01:29:02 · 1113 阅读 · 0 评论 -
HDU 5703 Desert
我场上不怕时间不够,慢慢来 以下,第一行是总量,第二行是分配方式,第三行是方法数及其二进制表示 1 1 1 1 2 2 11 2 10 3 3 12 21 111 4 100 4 4 31 13 22 211 112 121 1111 8 1000 5 5 41 14 32 23 212 122 221 311 113 131 2111 1121 1211 1112原创 2016-07-30 01:21:55 · 401 阅读 · 0 评论 -
HDU 4594 Script Z
一道恶心的模拟,写了一整晚上也不知道哪里错,借助大神的代码AC了 这是Hint :The problem itself is easy of course. But some of the test cases of this problem are strange and annoying. Be careful! #include #include #include #include #i原创 2016-07-28 01:06:19 · 755 阅读 · 0 评论