摘要: 805D - Minimum number of steps 思路:简单模拟,a每穿过后面一个b,b的个数+1,当这个a穿到最后,相当于把它后面的b的个数翻倍。每个a到达最后的步数相当于这个a与它后面已经到达最后的a之间的b的个数,只要从后面往前扫,记录b的个数,每遇到一个a,把b的个数加入答案,并 阅读全文
posted @ 2017-08-10 11:11 Wisdom+.+ 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 610B - Vika and Squares 思路:注意对环状结构的理解。找到所有值的最小值minn,然后所有值减去这个最小值,再在环状结构里找一个最长连续正数的长度maxl,答案就是minn*n+maxl。 代码: 阅读全文
posted @ 2017-08-09 17:19 Wisdom+.+ 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 757B - Bash's Big Day 思路:筛法。将所有因子个数求出,答案就是最大的因子个数,注意全为1的特殊情况。 代码: 阅读全文
posted @ 2017-08-09 16:44 Wisdom+.+ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 535B - Tavas and SaDDas 方法一:打表大法。 代码1: 方法二:用了一种类似于二进制的方法,把4映射成1,把7映射成2,那么幸运数就变成了由1和2组成的类似二进制的结构了,再转换成十进制就是答案了。 代码2: 阅读全文
posted @ 2017-08-09 14:37 Wisdom+.+ 阅读(2040) 评论(0) 推荐(0) 编辑
摘要: Rikka with Graph 思路: 官方题解: 代码: 阅读全文
posted @ 2017-08-09 10:25 Wisdom+.+ 阅读(147) 评论(0) 推荐(0) 编辑
摘要: A - Bear and Prime 100 思路:任何一个合数都可以写成2个以上质数的乘积。在2-100中,除了4,9,25,49外都可以写成两个以上不同质数的乘积。 所以打一个质数加这四个数的表:{2,3,4,5,7,9,11,13,17,19,23,25,29,31,37,41,43,47,4 阅读全文
posted @ 2017-08-08 20:19 Wisdom+.+ 阅读(269) 评论(0) 推荐(0) 编辑
摘要: Maya Calendar 思路:日历转换,仔细一点。 代码: 阅读全文
posted @ 2017-08-08 17:28 Wisdom+.+ 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 487-3279 思路:用map映射。我的代码用g++TLE,用c++由于没分清cstring和string一直CE。 阅读全文
posted @ 2017-08-08 15:18 Wisdom+.+ 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 命运 思路:dp。 代码: 阅读全文
posted @ 2017-08-08 11:10 Wisdom+.+ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 彼岸 思路:动态规划。因为不能有连续三个不同的颜色,所以只要看最后三个就可以了。 设dp[n]为长度为n到达彼岸的方案数。 ①当第n-2个颜色和第n-1个颜色相同时,第n个位置可以取任意一种颜色,dp[n-1]==dp[n-2],dp[n] = dp[n-2]*3; ②当第n-2个颜色和第n-1个颜 阅读全文
posted @ 2017-08-08 10:21 Wisdom+.+ 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 838A - Binary Blocks 思路:求一下前缀和,然后就能很快算出每一小正方块中1的个数了,0的个数等于k*k减去1的个数,两个的最小值就是要加进答案的值。 代码: 阅读全文
posted @ 2017-08-08 09:59 Wisdom+.+ 阅读(485) 评论(0) 推荐(0) 编辑
摘要: N对数的排列问题 思路:设ai为第i个宝宝第一次出现的位置,bi是他第二次出现的位置,则bi-ai=i+1; ∑(bi-ai) = 2+3+4+...+n+1=(n+3)*n/2;① ∑(ai+bi) = 1+2+3+...+2*n=(2*n+1)*n;② ②-①得: 2∑ai = (3*n2 -n 阅读全文
posted @ 2017-08-07 13:36 Wisdom+.+ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 三足鼎立 思路:arctan(1/s) = arctan(1/u)+arctan(1/v) 1/s = tan(arctan(1/u)+arctan(1/v)) = (tan(arctan(1/u))+tan(arctan(1/v)))/(1-tan(arctan(1/u))*tan(arctan( 阅读全文
posted @ 2017-08-07 12:32 Wisdom+.+ 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Skip the Class 代码: 阅读全文
posted @ 2017-08-06 18:11 Wisdom+.+ 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1.单源最短路问题 ①Bellman-ford算法: 例题:poj 1860 Currency Exchange 思路:判断是否存在正权环。 代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #incl 阅读全文
posted @ 2017-08-06 17:43 Wisdom+.+ 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 1.利用dfs对DAG拓扑排序 当从某顶点v出发的DFS搜索完成时,v的所有后继顶点必定均已被访问过(想像它们均已被删除),此时的v相当于是无后继的顶点,因此在DFS算法返回之前输出顶点v即可得到 DAG的逆拓扑序列。 模板(算法竞赛入门经典): 2.队列实现拓扑排序,明显好理解 以下是判 阅读全文
posted @ 2017-08-06 15:27 Wisdom+.+ 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 435B - Pasha Maximizes 思路:贪心。从高位开始,找到比这一位大的且能在k次交换之内交换到这一位的最大一位数,那这个数交换到这一位,k减去相应的交换次数。这样就保证了高位尽可能大,也就保证了交换后的数尽可能大。 代码: 阅读全文
posted @ 2017-08-06 13:15 Wisdom+.+ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 度度熊与邪恶大魔王 思路:由于防御和血量的范围很小,所以暴力枚举出对于每种防御造成的每种伤害所需的最小花费,最后只需在伤害大于等于血量的情况下再找到最小花费(这个只需要后缀最小值预处理一下就可以了) 状态:dp[i][j]表示对防御为i的怪兽造成伤害为j的所需最小晶石花费。 状态转移方程:dp[i] 阅读全文
posted @ 2017-08-05 23:59 Wisdom+.+ 阅读(386) 评论(0) 推荐(0) 编辑
摘要: URAL - 1353 思路:dp。 dp[i][j]表示位数为i的各位相加为j的方案数。 状态转移:dp[i][j]=∑dp[i-1][j-k](k从0到min(9,j))。 代码: 阅读全文
posted @ 2017-08-04 17:13 Wisdom+.+ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 837E - Vasya's Function 题意:定义函数f(x,y):f(x,0)=0,f(x,y)=1+f(x,y-gcd(x,y)),给你x,y,求f(x,y)。 思路:x=X*gcd(x,y),y=Y*gcd(x,y),X与Y互质。y-gcd(x,y)=(Y-1)*gcd(x,y),如果 阅读全文
posted @ 2017-08-04 16:14 Wisdom+.+ 阅读(215) 评论(0) 推荐(0) 编辑