09 2016 档案
摘要:题意:给出N个不同的串,长度一样,别人随机选一个串,你要询问他那个串某一个位置是什么字符直到能确定那个串才能停止,问询问次数的期望。 题解:50个串20个位置容易想到状压,把字符串长度状压先考虑能否在某一个状态确定哪些字符串能确定哪些不能确定,需要2^m*m次,然后时间上不能再乘以n不然会爆,想想只
阅读全文
摘要:题意:有n种菜,现在选m种菜来吃,如果在吃y的前一道菜是x的话,那么就可以获得额外满意度。每一种菜都有一个满意度。 思路:设dp[i][S]表示为最后一道菜为i,现在的菜吃的状态为S。S中的二进位如果为1表示已经吃了,如果是0则表示没吃,状压DP,答案就出了。
阅读全文
摘要:题意:求l,r范围内能被自身所有非0digits整除的数的个数,范围是1~9e18 题解: 一个个digit判断很难搞,用lcm直接判断就会简单很多,如果所有种类的digit都有,那么1~9的lcm是2520,就算数少一点也必定是2520可以整除的数,那么根据这个进行状态转移。 因为假设对于数字nu
阅读全文
摘要:题意: 给一串数字a1~an,ai表示i与ai相连,问给出的数组经过最少数量的更改能形成一颗树 题解:分析可知组成的只能由三种非连通图构成,点,不含环链,含环链,含环链必定只可能还有一个环 统计三种的数量,点和不含环链必定会有父节点为自身的点,含环链用强连通跑一跑,最后把这三种图连到一个节点上就行
阅读全文
摘要:参考自:http://www.bubuko.com/infodetail-1762450.html 题目大意:给你一副无向图,边有权值,初始权值>=0,若权值==0,则需要把它变为一个正整数(不超过1e18),现在问你有没有一种方法, 使图中的边权值都变为正整数的时候,从 S 到 T 的最短路恰好等
阅读全文
摘要:double area(){//top为总点数,即0~top-1,res为点数组 double sum; sum = res[0].y * (res[top-1].x-res[1].x); for(int i = 1; i < top; i ++) sum += p[res[i]].y * (res[i-1].x-res[(i+1)%top].x); ...
阅读全文
摘要:题意:长度n的序列, m个询问区间[L, R], 问区间内的所有连续子段的不同GCD值有多少种. 题解: 1.因为n个数的gcd等于前n-1个数的gcd值再于第n个数gcd一下的值,再加上如果固定终点,区间向前延伸越多gcd必定是非严格递减的,所以我们可以预处理出以每一个数为终点的所有的后缀的gcd
阅读全文
摘要:模拟注意细节,没什么好说的#include #include #include #include #include #include #include #include #include //#pragma comment(linker, "/STACK:102400000,102400000") using namespace std; #define PF(x) cout ...
阅读全文
摘要:#include #include #include #include #include #include #include #include #include //#pragma comment(linker, "/STACK:102400000,102400000") using namespace std; #define PF(x) cout 1&&cross(res[...
阅读全文
摘要:题意: 给出n个数字,这些数字数由另外n个数字各个位数的和得来的。求另外个数,要尽量小,而且要递增。 题解: 从最小位往最大位贪心,如果可以在做到最小位大于上一个数其他位与上一个数相等最好,不行就再往前面试,全部都不行就要位数比前面的大,具体参见:http://blog.csdn.net/ck_bo
阅读全文
摘要:已知对角线两点(x0,y0) (x1,y1) x1+x3 = x0+x2; x1-x3 = y2-y0; y1+y3 = y0+y2; y1-y3 = x0-x2;
阅读全文
摘要:题意: 有M个开关,控制着N个灯,触碰一下开关,会把他所控制的灯的状态改变。对于M个开关你可以选择碰一次或者不碰,求最后开着多少个灯的三次方的期望值E(X^3)*2^m 题解:原式显然可以分解成X3 X=(x1+x2+x3...+xn),其中xi表示第i个灯的状态,题目就转化为求各个状态下X的立方的
阅读全文
摘要:题意:有n只狼,每只狼有两种属性,一种攻击力一种附加值,每杀一只狼 受到的伤害值为这只狼的攻击值与它旁边的两只狼的附加值的和,求把所有狼都杀光受到的最小的伤害值。 题解:还是老问题,,,区间DP想到了但是担心枚举i~j区间中元素时,处理dp[i][k-1]的时候要顾及i-1位置的狼,其实根本不用,初
阅读全文
摘要:S = A大B大 - A大B小 - A小B大 + A小B小。(A表示A环,大表示大圆,B同)。然后直接套模板,,,,
阅读全文
摘要:题意:在平面直角坐标系上有一个10*10的正方形房间,房间中有n堵平行y方向的墙,每堵墙上有两扇门, 问从房间最左边的(0,5)处,通过门,到达房间最右边的(10,5)处的最短距离 题解:考虑从起始点,若沿x轴走则可以一直走到被墙堵住为止,此时其需要走到堵住它的墙的门的端点,一定可以转化成更早就从某
阅读全文
摘要:转自http://blog.csdn.net/y990041769/article/details/38258761 计算几何是算法竞赛的一大块,而叉积是计算机和的基础。 首先叉积是计算说向量之间的叉积,那么我们可以这样定义向量,以及向量的运算符重载。 首先在二维坐标下介绍一些定义: 首先在二维坐标
阅读全文
摘要:转自 http://www.cnblogs.com/kuangbin/p/3188484.html kuangbin关于点的叉积,点积,点绕原点旋转,两直线关系模版: int sgn(double x){ if(fabs(x) < eps) return 0; if(x < 0) return -1
阅读全文
摘要:转自:http://blog.csdn.net/liang5630/article/details/7917702 rmq算法可用来求区间最值,区间最值差,树上最近公共祖先,时间复杂度O(nlogn) 1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指
阅读全文