k2

求最大三角形——poj2079

白昼怎懂夜的黑 提交于 2020-02-26 01:07:42
用旋转卡壳的思想,固定住一点,然后剩下两点通过单峰函数的性质进行移动 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<vector> #include<algorithm> using namespace std; typedef double db; const db eps=1e-8; const db pi=acos(-1.0); int sign(db k){ if (k>eps) return 1; else if (k<-eps) return -1; return 0; } int cmp(db k1,db k2){return sign(k1-k2);} int inmid(db k1,db k2,db k3){return sign(k1-k3)*sign(k2-k3)<=0;}// k3 在 [k1,k2] 内 struct point{ db x,y; point(){} point(db x,db y):x(x),y(y){} point operator + (const point &k1) const{return point(k1.x+x,k1.y+y);} point operator - (const point &k1) const

判直线平行,重合,直线交点——poj1269

匆匆过客 提交于 2020-02-16 22:54:31
#include <cstdio> #include <cmath> #define db double using namespace std; const db eps=1e-6; const db pi = acos(-1); int sign(db k){ if (k>eps) return 1; else if (k<-eps) return -1; return 0; } int cmp(db k1,db k2){return sign(k1-k2);} struct point{ db x,y; point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};} point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};} point operator * (db k1) const{return (point){x*k1,y*k1};} point operator / (db k1) const{return (point){x/k1,y/k1};} }; db dot(point k1,point k2){ return k1.x*k2.x+k1.y*k2.y; } db cross(point k1

洛谷 P1147 连续自然数和

守給你的承諾、 提交于 2020-01-24 03:54:47
P1147 连续自然数和 思路: 设一段自然数的首项为 a 1 ,末项为 a 2 ,则这段自然数之和为: sum =(a 1 + a 2 ) * (a 2 - a 1 + 1) / 2 = m 即(a 1 + a 2 ) * (a 2 - a 1 + 1) = 2m 可以把2M分解成两个数之积,假设分成了两个数K1,K2,且K1<K2时, 可以列一个二元一次方程组: (1)a 2 - a 1 + 1 = K1 (2)a 1 + a 2 = K2 解得:a 1 = ( K2 - K1 + 1 ) / 2 , a 2 = ( K1 + K2 - 1 ) / 2 要保证a1和a2都为自然数,K2和K1必须是一个奇数,一个偶数 不过有一种特殊情况,就是a 1 = a 2 的情况,这种情况是不允许的 即(K2-K1+1)/2 ≠ (K1+K2-1)/2,解得K1≠1 代码如下: # include <iostream> # include <algorithm> # include <stdio.h> # include <cmath> typedef long long ll ; using namespace std ; int m , k1 , k2 ; int main ( ) { scanf ( "%d" , & m ) ; for ( k1 = sqrt ( 2 * m ) ;

2020 camp day-1-A

耗尽温柔 提交于 2020-01-15 13:39:44
题面 7-1 1A. 期望逆序对 有 n 个独立的随机变量,其中 x ​ i ​​ 的值是一个从 [ 中随机选取的整数,即对于 [ 中的任何一个整数 j, x ​ i ​​ = j 的概率都是 (。 现在你需要给出一个长度为 n 的排列 p,那么可以得到一个长度为 n 的随机变量序列 。你的目标是让结果序列的逆序对个数的期望尽可能少。 求逆序对个数的期望的最小值。 输入格式: 第一行输入一个整数 (。 接下来 n 行每行两个整数 ,。 输出格式 输出一行一个整数,表示答案对 9 取模后的值。假设答案的最简分数表示是 ​ y ​ ​ x ​​ ,你需要输出一个整数 k 满足 mod 。 输入样例: 3 1 2 2 3 1 3 输出样例: 332748118 题解 1 #include <cstring> 2 #include <cstdio> 3 #include <algorithm> 4 5 #define RE register 6 #define FOR(i,a,b) for(RE int i=a;i<=b;++i) 7 #define ROF(i,a,b) for(RE int i=a;i>=b;--i) 8 #define sc(n) scanf("%d",&n) 9 #define ll long long 10 #define p pair<int,int> 11

欧几里得

故事扮演 提交于 2019-12-06 15:27:15
欧几里得 关于欧几里得定理这个东西,我在全网上也没有找到什么好的讲解。所以决定自己来写一写 自己都证了好久 欧几里得的应用一般是用在求 \(gcd\) 的时候用的,用辗转相除发递归求 \(gcd\) 。 相信大家一般都是直接用的,没有想过去证明它, 认为他很显然 是吧。 我最开始也是这样以为的,但是却发现自己证了好久。 肯定是我太菜了 不多废话。。。 我就只讲一下欧几里得求 \(gcd\) 的证明。 好像欧几里得就这个作用 先写出众所周知的公式: \(gcd(a,b) = gcd(b, a % b)\) 然后不断递归就行了。 现在来证明如上等式: 令 \(gcd(a, b) = c\) , 那么, \(a = c * k1\) , \(b = c * k2\) ( \(k1\) 和 \(k2\) 互质) 那么, \(gcd(a, b) = gcd(c * k1, c * k2)\) \(a % b = c * k1 % c * k2 = (k1 % k2) * c\) 上面这一步需要好好理解一下,如果 \(k1\) 和 \(k2\) 不互质的话就没有这个结论 证明如下: 原式可以展开如下 : \(c * k1 = c * k2 * t + e\) 这个 \(t\) 可以为 \(0\) ,而这个 \(e\) 就是 \(a % b\) 了 \(a % b = c * k1 - c *

Unit/Automated Testing in a workflow system

谁说胖子不能爱 提交于 2019-12-04 10:27:26
问题 Do you do automated testing on a complex workflow system like K2? We are building a system with extensive integration between Sharepoint 2007 and K2. I can't even imagine where to start with automated testing as the workflow involves multiple users interacting with Sharepoint, K2 workflows and custom web pages. Has anyone done automated testing on a workflow server like K2? Is it more effort than it's worth? 回答1: I'm having a similar problem testing workflow-heavy MOSS-based application.

11. 二叉查找树中搜索区间

送分小仙女□ 提交于 2019-12-02 15:10:49
11. 二叉查找树中搜索区间 给定一个二叉查找树和范围[k1, k2]。按照升序返回给定范围内的节点值。 样例 样例 1: 输入:{5},6,10 输出:[] 5 它将被序列化为 {5} 没有数字介于6和10之间 样例 2: 输入:{20,8,22,4,12},10,22 输出:[12,20,22] 解释: 20 / \ 8 22 / \ 4 12 它将被序列化为 {20,8,22,4,12} [12,20,22]介于10和22之间 /** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: param root: The root of the binary search tree * @param k1: An integer * @param k2: An integer * @return: return: Return all keys that k1<=key

浅谈OI中的数论

て烟熏妆下的殇ゞ 提交于 2019-11-30 21:57:32
事情是这样的,我是一个萌新,然后萌新初学数论。qvq 本篇文章的难度大概是gcd~莫比乌斯反演,说不定我还会写一点组合计数,容斥原理,线性代数的知识,当然,我估计我不会,因为咕咕。 文章以数学证明为主,代码都好理解,所有的运算以计算机运算法则为准。qvq( 人家的码风才不毒瘤 ) GCD&LCM 即最大公约数和最小公倍数,这里介绍 欧几里得 求gcd。 设(a,b)表示gcd(a,b)。 求证:gcd(a,b)=gcd(b,a%b) 证明: 设a=k1*c,b=k2*c且(k1,k2)=1. 则(a,b)=c. 设a%b=a-k3*b. 则有a%b=a-k3*b=k1*c-k3*k2*c=(k1-k2*k3)*c. 若(k2,k1-k2*k3)=1,(b,a%b)=c,则(a,b)=(b,b%a). 若(k2,k1-k2*k3)≠1,设k2=m1*d,k1-k2*k3=m2*d. 则(a,b)=(k3*m1*d*c+m2*d*c,m1*d*c)=dc≠c,则假设不成立。 综上所述,(a,b)=(b,a%b). 证毕. 特别地,当b=0的时候,(a,b)=a。 LCM的求法:lcm(a,b)=a*b/gcd(a,b).就不证明了。 来源: https://www.cnblogs.com/valentino/p/11641953.html