NeoRuTayE's blog

Tags · ACM

Home

About

Archives

🧸

ACMCC++数论

HDU3037-Saving Beans(卢卡斯定理,组合数)

  题目链接:HDOJ-3037   这道题关键之处在于式子的推导,只要把式子推导出来了,就可以直接套用Lucas的模板,从而求出答案。那么,公式要怎么求呢?   首先,问题要求的是从n棵树中收集不超过m个果实(原本以为是将不多于m个果实放到n棵树中......这题目表达有问题啊!)。也就是说,问题其实是求方程x1+x2+x3+···+xn=m的非负整数解的个数。那么我们要怎求呢?   首先,如果是求正整数解的个数,那我们可以直接用最简单的隔板法,即C(m-1,n-1);但这里求的是非负整数解,也就是说x1,x2,···,xn中的一个或多个可以为0。这种情况下,我们仍可以用隔板法来计算。方法是,将求非负整数解这一个问题转化为求正整数解,也就是将每一个x(x1,x2,···,xm)都加上1,构造一个新的方程y..

Read more
ACMCC++

POJ1002-A+B Problem

大数相加,方法就是用字符串存数字,然后模拟手算的方法计算。虽是水题,但有些细节还是要注意。

Read more
ACMCC++

POJ1328-Radar Installation(贪心)

       思路:以岛屿为圆心作半径为d的圆,则每个可以被覆盖的岛屿(即y<=d)都可以在x轴上形成一个或两个交点。也就是说,每个岛屿在画圆后都在x轴上形成一个长度大于或等于0的区间。这些区间即为安装雷达的地方。接下来要做的就是将这些区间的相交区间(即交集)找出来并计数。相交区间的数目即为雷达的数目。

Read more
ACMCC++

HDU-2612-Find A Way(BFS)

   这是一道稍微有点特殊的题,特殊之处在于它需要使用2次广搜。刚开始做的时候思路是把所有肯德基的位置记录下来,然后以每一个肯德基的位置为终点来bfs。。。。。。然后就TLE了OTZ。。。。。。后来发现只需要只需要用两次bfs,把整个地图走遍,如果走到的地方是肯德基,就记录此时的步数,然后两个最小值相加乘以11就行了。 代码如下: #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <algorithm> #include <climits> #pragma GCC optimize(2) using namespace s..

Read more
1789