x2

Double Elimination CodeForces - 1314B dp

∥☆過路亽.° 提交于 2020-03-16 09:01:51
//f[i,j,f1,f2] //f1 和 f2 都是01数 //1表示剩下的人是喜欢的 //从j开始,长度为2^i个人,胜者组为f1,败者组为f2 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int maxn = ((1<<17)+1000); int n,k,fans[maxn]; int dp[18][maxn][2][2]; //初始化 void init() { for(int i=0; i<18; i++) { for(int j=0; j<maxn; j++) { for(int k=0; k<2; k++) { for(int z=0; z<2; z++) { dp[i][j][k][z]=-1e9; } } } } } int main() { init(); cin>>n>>k; for(int i=0; i<k; i++) { int x; cin>>x; fans[x-1]=1; } //枚举i for(int i=1; i<=n; i++) { //枚举人 区间长度 for(int j=0; j<(1<<n); j+=(1<<i)) { //等于1,也就是初始化的时候 if(i==1) { /

《数理统计》(第二周)统计量及其分布

眉间皱痕 提交于 2020-02-27 14:32:53
一. 统计量 不含任何未知参数的样本的函数称为统计量。它是完全由样本决定的量。 定义:设 X 1 , X 2 … X n X_{1},X_{2}…X_{n} X 1 ​ , X 2 ​ … X n ​ 是来自总体 X X X 的一个样本, g ( X 1 , X 2 … X n ) g(X_{1},X_{2}…X_{n}) g ( X 1 ​ , X 2 ​ … X n ​ ) 是 X 1 , X 2 … X n X_{1},X_{2}…X_{n} X 1 ​ , X 2 ​ … X n ​ 的函数,若 g g g 中不含未知参数,则称 g ( X 1 , X 2 … X n ) g(X_{1},X_{2}…X_{n}) g ( X 1 ​ , X 2 ​ … X n ​ ) 是一个统计量。 设 X 1 , X 2 … X n X_{1},X_{2}…X_{n} X 1 ​ , X 2 ​ … X n ​ 是来自总体 X X X 的一个样本, x 1 , x 2 … x n x_{1},x_{2}…x_{n} x 1 ​ , x 2 ​ … x n ​ 是一个样本的观察值,则 g ( x 1 , x 2 … x n ) g(x_{1},x_{2}…x_{n}) g ( x 1 ​ , x 2 ​ … x n ​ ) 是统计量 g ( X 1 , X 2 … X n ) g(X_{1

AcWing 321 棋盘分割

谁都会走 提交于 2020-02-19 13:33:00
题目描述: 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。 现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小。 均方差 ,其中平均值 ,xixi为第 i 块矩形棋盘的总分。 请编程对给出的棋盘及n,求出均方差的最小值。 输入格式 第1行为一个整数n。 第2行至第9行每行为8个小于100的非负整数,表示棋盘上相应格子的分值。每行相邻两数之间用一个空格分隔。 输出格式 输出最小均方差值(四舍五入精确到小数点后三位)。 数据范围 1<n<15 输入样例: 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 3 输出样例: 1.633 分析: 本题是二维区间DP问题。应该说本题的题意表述不太清楚,只能沿着棋盘格子的边进行切割这句话太抽象,题目想要表达的意思是对8*8的棋盘,横着切一刀或者竖着切一刀,切完后选择留其中的一块继续切割

动态规划-Cherry Pickup

不羁岁月 提交于 2020-02-03 18:20:33
2020-02-03 17:46:04 问题描述 : 问题求解 : 非常好的题目,和two thumb其实非常类似,但是还是有个一点区别,就是本题要求最后要到达(n - 1, n - 1),只有到达了(n - 1, n - 1)才算是有效解,two thumb是一定会有解的,所以不用加特别判断。 也是一种路径规划类的题目,难点依然是状态的表示,我们这里使用的p1,p2的坐标位置作为状态。 另外,还需要注意的是在超界的时候,我们需要返回的是Integer.MIN_VALUE,这样就可以规避掉一些中间节点到不了终点的情况。 int[][][] dp = new int[51][51][51]; public int cherryPickup(int[][] grid) { int n = grid.length; for (int i = 0; i <= 50; i++) { for (int j = 0; j <= 50; j++) { Arrays.fill(dp[i][j], -1); } } int res = dfs(grid, 0, 0, 0); return dp[n - 1][n - 1][n - 1] == -1 ? 0 : res; } private int dfs(int[][] grid, int x1, int y1, int x2) { int n =

canvas之arcTo

大憨熊 提交于 2020-02-03 04:18:43
arc与arcTo,从名字都能看出来相似。arcTo也是画曲线的方法,而且他画出的曲线也是正圆的一段弧线。但他的参数和arc简直是不共戴天~ ctx.arcTo(x1,y1,x2,y2,radius); arcTo的参数中包括两个点,而且这两个点中并没有表示圆心的点,仅仅最后的参数是圆的半径,表示arcTo和圆有那么点关系。 网上关于arcTo的文章很少,好不容易找到一篇还是外国的;而且canvas画图木有直观工具,只能靠猜,arcTo害我猜了半天。。 为了直观的描述,我采取了一种辅助办法:arcTo画到哪里,我就用lineTo也画到相应的点,以查看他们的关系。就是画辅助线。 var x0=100, y0=400, x1 = 500, y1 = 400, x2 = 450, y2 = 450; ctx.beginPath(); ctx.moveTo(x0,y0); ctx.strokeStyle = "#f00"; ctx.lineWidth = 2; ctx.arcTo(x1,y1,x2,y2,20); ctx.stroke(); ctx.beginPath(); ctx.strokeStyle = "rgba(0,0,0,0.5)"; ctx.lineWidth = 1; ctx.moveTo(x0,y0); ctx.lineTo(x1,y1); ctx.fillText(

货郎问题

こ雲淡風輕ζ 提交于 2020-01-26 17:39:28
货郎问题(Traveling Salesman Problem,简称“TSP”)也叫货郎担问题,中国邮路问题,旅行商问题等,是计算机算法理论历史上的经典问题。在过去几十年中,它成为许多重要算法思想的测试平台,同时也促使一些新的理论领域的产生,比如多面体理论和复杂性理论。 货郎问题:给定n个结点和任意一对结点{i,j}之间的距离为dist(i,j),要求找出一条闭合的回路,该回路经过每个结点一次且仅一次,并且该回路的费用最小,这里的费用是指每段路径的距离和。 货郎问题求解其精确解是NP难的,并且求解任意常数因子近以度的解也是NP难的。若将问题限定在欧氏平面上,就成为欧氏平面上的货郎问题,也叫欧几里德旅行商问题(Eculid Traveling Salesman Problem)。但是,即使是欧氏平面上的货郎问题也是NP难的。因此通常用来解决TSP问题的解法都是近似算法。其中第一个欧几里德旅行商问题的多项式近似算法是Arora在1996年使用随机平面分割和动态规划方法给出的。 J.L. Bentley 建议通过只考虑双调旅程(bitonic tour)来简化问题,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后严格地从右到左直至出发点。下图(b)显示了同样的7个点的最短双调路线。在这种情况下,多项式的算法是可能的。事实上,存在确定的最优双调路线的O(n*n)时间的算法。   注

matlab一元线性回归及多元线性回归方程

岁酱吖の 提交于 2020-01-19 05:12:01
%%1、bint表示回归系数区间估计可参考http://www.360doc.com/content/11/0801/20/2537127_137246007.shtml %2、r表示残差 %3、rint代表置信区间 %4、stas表示用于检验回归模型的统计量,有三个数值 r^2 F 与F对应的概率P 例如p<0.05 残差95% % r^2越接近于1,回归方程越显著 %alpha表示显著水平 %% x=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]’; X=[ones(16,1),x]; Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]’; [b,bint,r,rint,stats]=regress(Y,X) t=1:16; %% figure(1); y_fitting=X(t,:)*b; plot(t,y_fitting,‘r-’, t,Y(t,:),‘b-’, t,abs(y_fitting-Y(t,:)),‘k-’); legend(‘红–拟合值’,‘蓝–实际值’,‘黑–误差值’); text(3,50,strcat(‘相关系数R=’,num2str(stats(1,1 )))); text(7,50,strcat(‘F=’

凸优化笔记——1.凸集

纵然是瞬间 提交于 2020-01-14 09:12:52
凸集 本章目录 凸集与仿射集 一些例子 保凸运算 广义不等式 分割超平面与支撑超平面 对偶锥与广义不等式 本章目录 凸集与仿射集 仿射集合 affine set 定义:给定两点 x 1 , x 2 ∈ R n , x 1 ≠ x 2 x_1,x_2 \in R^n, x_1 \neq x_2 x 1 ​ , x 2 ​ ∈ R n , x 1 ​  ​ = x 2 ​ ,所有满足 x = θ x 1 + ( 1 − θ ) x 2 , θ ∈ R x = \theta x_1 + (1-\theta)x_2, \theta \in R x = θ x 1 ​ + ( 1 − θ ) x 2 ​ , θ ∈ R 的点。 注意:仿射集包含过集合中任意两点的直线。 例子:线性方程组的解集是仿射集, C = { x ∣ A x = b } C=\{x | Ax = b\} C = { x ∣ A x = b } 。反之亦然,任何一个仿射集都可以表示为一组线性方程组的解。 凸集 convex set 定义:与仿射集类似,但要求 θ ∈ [ 0 , 1 ] \theta \in [0,1] θ ∈ [ 0 , 1 ] ,即任取集合中 x 1 , x 2 x_1,x_2 x 1 ​ , x 2 ​ ,两点之间的线段组成的集合。 例子: 凸组合与凸包 convex combination &

gtest

拥有回忆 提交于 2019-12-25 14:11:23
gtest C++单元测试框架,由google公司发布。 断言 //bool值检查 //期待结果是true ASSERT_TRUE ( XX ) //期待结果是false ASSERT_FALSE ( XX ) //数值型数据检查 //期待结果X1=X2 ASSERT_EQ ( X1,X2 ) , //期待结果X1!=X2 ASSERT_NE ( X1,X2 ) //less than < ASSERT_LT ( X1,X2 ) //greater than > ASSERT_GT ( X1,X2 ) //less equal <= ASSERT_LE ( X1,X2 ) //greater equal >= ASSERT_GE ( X1,X2 ) //NULL指针和空字符串被认为是不同的 //期待字符串相等 ASSERT_STREQ ( str1 , str2 ) //忽略大小写 ASSERT_STRCASEEQ ( expected_str , actual_str ) ; //期待字符串不等 ASSERT_STRNE ( str1 , str2 ) //忽略大小写 ASSERT_STRCASENE ( str1 , str2 ) ; //异常抛出 ASSERT_ANY_THROW ( statement ) ; EXPECT_系列 //程序死了并且错误信息和X2匹配

关于reshape(-1,1)

北城余情 提交于 2019-12-16 06:57:38
X2=[28488,10.528555,1.304844] X2=std_m(X2) y_predict2 = knn.predict(X2) print(y_predict2) 问题: Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample. 修改: X2的输入, 再加一个 [ ] X2=[[28488,10.528555,1.304844]] ####划重点,外面再加一个中括号 X3=std_m(X2) y_predict2 = knn.predict(X3) print(y_predict2) 来源: CSDN 作者: weixin_39107270 链接: https://blog.csdn.net/weixin_39107270/article/details/103486491