codeforces 148 div1
来源:互联网 发布:热重分析软件下载 编辑:程序博客网 时间:2024/05/29 03:04
A : 假设已经有了i个数了,而且没有一段连续的区间异或值为0,那么我们考虑加入第i+1个数有几种方法,显然,第 i+1个数不能等于以i结尾的所有连续区间的异或值,这样的话第i+1 个数就有2^m-(i+1)中取值,注意,0不能选,所以依次相乘即可
B: 将一个数列划分成两个数列,要求一个最大的f(i,j) - 最小的f(i,j)的最小值,f(i,j)是这样定义的:如果i j两个数在同一个数列中,f(i,j) = i+j,否则f(i,j) = i+ j + h;
如果h = 0,显然随便怎么放都是一样的,否则,我们要使最大值尽可能小,使最小值尽可能大
所以,有两种放法:一种是全部放到一边
另一种是 把a1 放到一边,其他全放到另一边,这样就能使得a[i]+a[j]+h的值尽可能的小了(假设a数组已经排好序),想仔细点就简单了
代码:http://codeforces.com/contest/238/submission/2509068
C: 树形DP,点数3000,关键是处理两个点之间的路径,因为都是从两个端点出发,所以可以定义这样的状态
dp[u][0] : 从u往上走 的最小代价
dp[u][1] : 从u的父亲往u走的最小代价
代价指的是u到根的代价
每次两种决策,水水的转移
代码 : http://codeforces.com/contest/238/submission/2505316
- codeforces 148 div1
- codeforces 150 div1
- codeforces round 156 div1
- codeforces 156 div1
- Codeforces #176 div1 A
- Codeforces 183 div1
- codeforces #215 DIV1
- Codeforces Round #223 div1
- Codeforces #228 div1
- codeforces 228(div1) C
- codeforces 228(div1) B
- codeforces round #250 div1
- Codeforces 253 Div1
- codeforces round #253 div1
- Codeforces 107 Div1
- Codeforces 109 Div1
- Codeforces 260 Div1
- codeforces #260 div1
- Codeforces Round #148 (Div. 2)
- 开始使用CSDN博客
- 再配置Linux字体
- firefox 14 vim化——Pentadactyl
- putty详细使用说明 (windows下)
- codeforces 148 div1
- Compass和Lucene的一些资料
- 【Visual C++】游戏开发笔记三十一 回归季:游戏开发资料整理打包下载&专栏行文思路整理
- PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
- 创建存储过程,根据产品编号查询产品说明
- 函数
- 我的原创数据库视频
- URL汉字编码问题(及乱码解决)
- 软件工程之数据库设计实验