- 博客(53)
- 收藏
- 关注
原创 hdu 5119 Happy Matt Friends
题意:n个数,可以取其中一部分来异或,问全部异或结果不小于m有多少种取法。 思路:dp(背包)。dp(i,j)表示取到第i个数,异或结果为j,有多少种方法。初态是有一种取法取得0,然后对每个数,有两种选择,取或不取,加上上一步的路径数就可以了。最后将dp(n,j)中j>=m的部分求和就行。需要注意的是,会爆int。 #include #include #include
2014-11-29 18:44:44 1092
原创 hdu 5120 Intersection
题意:两个内外径一样的环,给圆心坐标,求重叠部分的面积。 思路:圆面积求交+容斥。。直接上的模板,就是大圆交-2个大小圆交+小圆交。模板大法好啊。。 #include #include #include #include #include #include #include #include #include using namespace std; const d
2014-11-29 18:36:25 1045
原创 hdu 5122 K.Bro Sorting
题意:一个类似于冒泡排序的排序方法,每次随机选一个数,如果它右边的数比它小,就一直往右交换,问在rp最好的情况下,需要选几次。 思路:后往前扫一遍数组,发现需要交换的话,象征性交换一次(一直交换去模拟会超时),统计交换了多少次就行了。 #include #include #include #include #include #include #include #incl
2014-11-29 18:32:37 864
原创 第一场TopCoder
晚上没比赛做手痒。。翻了一下最近比赛发现有一场TC,就去试着做了一下。习惯了打CF,TC的界面搞得我很不适应,字小不说,还得开专门的客户端,不如网页版舒服啊。。 开了之后就是进去读题了,第一题是喂两个宠物,给定首次开始时间,间隔和喂的次数,问会不会出现同时喂的情况,水模拟一下就行了,不过因为读错题,坑了一些时间。摸索着发现需要写一个类,接口什么的必须和要求完全一致,有点忘了类怎么
2014-11-29 11:00:39 752 1
原创 hdu 5044 Tree
题意:一棵树。有两种操作,对两个点uv路径上的所有点加权和对路径上的所有边加权。最后输出所有点的权和所有边的权。 思路:树链剖分+树状数组。感觉这个题出出来就是为了报复社会的,我一共跪了25次。。又是扩栈又是输入挂又是内联,最后只有用c++交能过,g++爆栈。不过话说回来这个题也挺模版的,都是树链剖分的基本操作。因为没学过对边的处理,我把边绑在点上了,更改查询边时,去操作边向远离
2014-11-29 10:41:14 600
原创 一些用java写的题
hdu5050:二进制下求最大公约数。 import java.io.*; import java.math.*; import java.util.*; import java.text.*; public class Main { public static void main(String args[]){ Scanner cin=new Scanner(new Buffe
2014-11-27 09:50:12 550
原创 hdu 4472 Count
题意:n个节点的树,处于同一层的节点大小必须一样,问共有多少种不同的形态。 思路:dp。dp(i)表示i个节点的树的答案。因为同层节点大小必须一样在求dp(i)时,除去根,还有i-1个节点,然后枚举1~i-1中能整除i-1的数,加上即可。 #include #include #include #include #include #include #include #in
2014-11-26 23:26:55 496
原创 hdu 4465 Candy
题意:有两个盒子,里面各有n颗糖果。每天以p的概率打开第一个盒子,1-p的概率打开另一个盒子,拿一颗糖吃掉。求当你打开发现是空盒的时候,另一个盒子里的糖的期望。 思路:递推。计算一个盒子空的时候,另一个盒子还有i颗糖的概率,把它乘上i并累加起来。公式是f(i)=p^n*(1-p)^i*C(i+n,i)。计算时肯定不能暴力,算出来i=0,就可以递推i=1,2,3...,f(i)=f
2014-11-26 23:17:21 600
原创 hdu 5035 Delivery
题意:n个窗口在服务,分别服务了ci分钟,没人排队,你需要等待第一个服务完的窗口并接受服务。每个窗口的服务时间服从指数分布:p(ti = t) = kie^(-kit),问从现在到你接受服务完所花时间的期望。 思路:推公式。这题就不是给没好好学过数学的人做的,无耻地看了下别人的题解。大概是这样的,假设你在t=x时刻,接受的是第i个窗口的服务,其他窗口的完成时间肯定比x要晚,那么就
2014-11-26 11:47:09 603
原创 hdu 5037 Frog
题意:一条宽为m的河,上面已经有n块石头在各自的位置,青蛙每次最多跳l个单位距离。你作为上帝可以增加一些石头使得青蛙能跳到对岸,不过调皮的你想让青蛙跳的次数最多。青蛙很聪明,总会在你添加石头之后选择最少的跳跃次数。问青蛙需要跳多少次。 思路:贪心。一定要巨贪才行。方法是记录当前的位置cur和上一次的位置pre,开始是pre置为-l(因为贪)。然后让青蛙跳到能跳的最远的石头。如果跳
2014-11-25 22:15:32 705
原创 模板-树链剖分
#define MAXN 50010 #define L(u) (u<<1) #define R(u) (u<<1|1) //写在类里面爆栈 int n, m, q; int tim; //时间戳 int num[MAXN]; //树上每个节点的初始值 int siz[MAXN]; //siz[u]表示以u为根的子树的节点数 int top[MAX
2014-11-24 23:38:29 593
原创 模板-Dinic
#define INF 100000010 #define maxn 210 struct Edge{ int u; int v; int cap; int flow; Edge(int u,int v,int c):u(u),v(v),cap(c),flow(0){} Ed
2014-11-22 18:36:57 501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人