- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 SGU 110 三维计算几何 向量的灵活运用
题意不解释.思路:我们用一个基点和一个方向向量来表示题目中的光线(射线) ,射线上的任何一点都可以用 base + t * dir 表示(t >= 0)每次找到能射到的一个圆(与射线相交的圆,如果这种圆有多个就取距离最近的),找不到就停,然后反射,即维护一下base,dir。向量活用:1. 射线和圆求交点时把射线方程和圆方程联立,用向量的形式展开,再解个二元一次方程组即可。
2013-03-29 23:58:04 1492
原创 SPOJ 1182 数位DP+二分
#include #include #include #include using namespace std;#define LL long longint dp[33][33];void init() { int i, j; dp[0][0] = 1; for(i = 1; i <= 32; i++) for(j = 0; j <= i; j++) { dp[i]
2013-03-26 16:09:07 1010
原创 Codeforces Round #174 (Div. 1) (A, B, C)
第一次做div1,有点紧张,挂零,A题卡int了,悲剧赛后自己出了A,B,CA比赛的时候压力太大,没想用2个数组维护,直接用线段树的。codeB路径只可能是一条链,可能成环,记忆化搜索一下即可,避免重复计算,算是暴力的优化吧。codeC完全背包dp,根据题目给的限制条件,把某些物品绑定成一个物品,( 注意题目中bi,ci都各不相同)比方x,y,z
2013-03-18 23:33:06 1166
原创 HDU 3652 数位DP
递归:#include #include #include #include using namespace std;int a[11];int n;/* * 0 包含13 * 1 不包含13,但以3结尾 * 2 不包含13,不以3结尾 */int dp[11][3][15];int dfs(int len, int pre, int mod, bool lim
2013-03-17 20:13:49 874
原创 Codeforces 258B 数位DP
递归#include #include #include #define LL __int64const LL mod = 1000000007;LL dp[11], ans;int len;char a[11];void add(int dep, int dig, int num){ if(!dep) { dp[dig] += num;
2013-03-17 19:54:50 1248
原创 Codeforces Round #173 (Div. 2)
已AK, D题博弈结论不能证明,学习一下。E题用了数据结构“字典树”,应该不难代码不贴了,麻烦,最近集中精力搞历年省赛(浙江)的题A.B.C. 水题, 类似的题cf出了很多次了D.n=2 威佐夫博弈n=3 Nim博弈E字典树
2013-03-15 18:16:37 1005
原创 Codeforces Round #172 (Div. 2)
AB枚举分母b,则满足最接近的分子a一定是 x*b/y 或 x*b/y+1, 两种都算一下即可。 注意要用__int64, 最好在比较时把除法换成乘法。codeC方法可以用点旋转的模板和半平面交模板, 熟练的话可以速A,也可以分两种情况 :1. 阴影部分为平行四边形2. 阴影部分用长方形减去4个三角形,用数学知识(二元一次方程组)解出要去掉的三角形的边。
2013-03-11 23:28:56 1810
原创 SGU 106 模线性方程
一气之下变量全变成__int64就A了,不知道为什么要会越界。先考虑一些特殊情况。其它情况解两个方程组即可x1 y1 求出来的k值取相交部分。#include #include #include #include using namespace std;#define LL __int64// x1 = y2, y1 = x2 - (a/b) *
2013-03-08 21:22:12 1158
原创 Codeforces Round #171 (Div. 2)(完全)
这次比赛先速出了B,C两题,然后才出了A题,囧死,最后名次99(除去div1选手), 最终E题还是没有出,赛后才知道这是以前的cf原题。这次比赛意外变紫,压力山大。A比赛的时候是模拟的, 其实分4类讨论即可, 点(0,0)另外讨论。codeBtwo points,cf上很多次出现类似的题,重复了以前的题,无语,直接速A。。。codeC开两个数组分别表
2013-03-05 21:06:29 1523
原创 Codeforces Round #170 (Div. 2)
A. B. 暴力C.人和语言都看做点,建图后,求出图有k个联通块,答案就是k-1, 注意每个人都不会任何语言的情况,答案为n。D. 先排除不成立的情况 m == 3 && n > 5.抛物线的对称的一边上任取m个点必定构成凸m边形。我们可以先构造出这凸m边行, 然后再加入n-m个点,这些点的加入要不能改变凸包最多的边数m,我们可以让这n-m个点与m个点的连接的直线倾斜角
2013-03-01 18:26:40 1095 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人