j 模擬
題意:移動數字
記錄一下每個數字的位置 然後如果和0的距離為1 則交換
#include
using namespace std;
struct node
p[1020000];
//pos
intcal
(int x,
int y)
int a[
1020000];
intmain()
}while
(m--)}
for(
int i =
0; i <= n * n -
1; i++
)for
(int i =
1; i <= n * n; i++)}
return0;
}
a
題意:find such a x
let a^x + b ^ x = 0 mod p ^k
p is prime and odd
conclusion:
if exist t
a^t + b ^ t = 0 mod p ^ k
a^ pt + b ^ pt = 0 mod p^(k+1)
prove:
let c = a^t:
b^t = (p ^ k )* d - a ^ t
c^p + ( (p ^ k ) * d - c) ^ p
後面那個二項式展開 然後化簡一下你會發現可以整除p^(k+1) 的
所以就可以遞推了
first
find such a x which
a^x + b ^x = 0 mod p
we can search x of (1~p-1) ( it』s a brute force) to find whether it is true
if doesn』t exist :
ans=-1
else 遞推到k次
why not to find more
because we know that a^(p-1) = 1 mod p
so it is enough to find 1~p-1
#include
using namespace std;
#define ll long long
ll a,b,p,k;
ll ppow
(ll a,ll n)
return ret;
}int
main()
temp = temp * a % p;
temp1 = temp1 * b % p;}if
(ans==0)
else
}return0;
}
c
期望題先求出兩個圓相交的概率
設r>=r
固定r 的 位置 分類討論一下r中軸的位置 根據面積公式求一下面積比 算出概率
最後得出期望即可
n個點可以先sort一下
兩兩求一下概率
#include
using namespace std;
double r[
302000];
intmain()
sort
(r+1
,r+1
+n);
double ans =0;
double sum =0;
for(
int i =
1; i <= n ; i++
)printf
("%.10lf\n"
,ans*2)
;return0;
}
h
曼哈頓最小生成樹
優化可以對每個點求8個象限
求最大邊
板子題 板子是求第k條邊
#include
using namespace std;
const
int maxn =
1000001
;const
int inf =
0x3f3f3f3f
;struct pointp[maxn]
;bool cmp
(point a, point b)
struct bit
}bit[maxn]
;struct edgeedge[maxn<<2]
;bool cmpedge
(edge a, edge b)
int tot;
int n;
int f[maxn]
;int
find
(int x)
void
addedge
(int u,
int v,
int d)
intlowbit
(int x)
void
update
(int i,
int val,
int pos)
i -=lowbit
(i);}}
intask
(int i,
int m)
i +=lowbit
(i);
}return pos;
}int
dist
(point a, point b)
void
manhattan_mst
(int n,point p)
}else
if(dir==2)
}sort
(p,p+n,cmp)
;for
(int i=
0;i++i)
sort
(b,b+n)
;int m =
unique
(b,b+n)
-b;for
(int i=
1;i<=m;
++i)
for(
int i=n-
1;i>=0;
--i)
update
(pos,p[i]
.x+p[i]
.y,i);}
}}intsolve
(int k)
}return0;
}int
main()
cout<<
solve
(n-1
)<}return0;
}
國慶集訓Day1
題意 有 n 個數 a 1,a 2,a n 有m個數 b 1,b 2,b n 令 a a 1 times a 2 times times a n 令 b b 1 times b 2 times times b n 判斷 a 是否是 b 的倍數 輸入 n,m 輸出 yes no 做法 就是個一簡單的質...
暑期訓練 day1
暑期訓練 day1 趙景樂今天主要通過 演算法競賽 一書學習了位運算,遞推遞迴,收穫還不小,一是通過位運算了解了一些之前不了解的知識與演算法,二是通過書上的一道hamilton演算法題目又複習了一遍dp。在今天的兩個小時比賽中我因為讀題不准得了4個罰時,又因為陣列定義在主函式裡面浪費了不少的時間和3...
國慶長樂醬油之旅day1
2018 10 01 19 51 01成功a掉 評價 普及 提高 思路 首先很容易想到如何判斷兩條線有交點 就是在所給的字串中找到兩個一樣的點 然後在這兩個點之間搜尋 記錄兩點之間所有點出現的次數,判斷是否為偶數即可 然而這是片面的 我們需要找兩個一樣的點也是有限制的,我們要處理一下。同時我們在記錄...