題解: 看上去好像很難的樣子 計算幾何??? 看了眼輸出 整數?? 模擬一下??? 好像直接維護就行 我們考慮對於[-m,m]範圍內的整數點 左端點+1 右端點-1(對應的r半徑) 對於當前點在樹狀陣列上二分找到當前第k大的數 然後統計貢獻即可
#include #include #include #include #include #include #include #include #include #include #define mp make_pair
#define pb push_back
#define pii pair#define link(x) for(edge *j=h[x];j;j=j->next)
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
const int maxn=1e5+10;
const double eps=1e-8;
#define ll long long
using namespace std;
struct edgee[maxn<<1],*h[maxn],*o=e;
void add(int x,int y)
ll read()
while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
return x*f;
}int sum[maxn],sz,n,m,k;
int get_id(int x)
void update(int x,int vul)
int querty(int x)
bool check(int t)
int slove()
return ans;
}vector>vec[maxn*20];
int main(){
n=read();m=read();k=read();sz=0;int r,a1,a2;
inc(i,1,n){
r=read();a1=read();a2=read();sz=max(sz,r);
if(a1time limit: 10 sec memory limit: 256 mb
submit: 220 solved: 121
[submit][status][discuss]
給定n個同心的扇形,求有多少面積,被至少k個扇形所覆蓋。
第一行是三個整數n,m,k。n代表同心扇形的個數,m用來等分 [-π,π]的弧度。
從第二行開始的n行,每行三個整數r,a1,a2。描述了乙個圓心在原點的扇形,半徑為r,圓心角是從弧度πa1/m到πa2/m,a1可能大於a2,逆時針掃過的區域為該扇形面積。
輸出乙個整數ans,至少被k個扇形所覆蓋的總面積等於π/2m×ans
保證答案不超過2^63-1
【輸入樣例1】
3 8 2
1 -8 8
3 -7 3
5 -5 5
【輸入樣例2】
2 4 1
4 4 2
1 -4 4
【輸出樣例1】
76【輸出樣例2】
98
Bzoj3562 神器化合物 Shoi 2014
ac通道 分析 若把每乙個原子看作乙個節點,將化學鍵看作一條邊,那麼這個題目要求的 分子的個數 很容易就可以看出是求圖中聯通塊的個數。求聯通塊的個數,可以使用並查集。可如何求出每一步的聯通塊的個數呢?可以知道,當連上一條邊時,若此邊連線的是兩個不同的聯通塊,那麼分子個數就會減一 當刪去一條邊時,若刪...
BZOJ 3566 SHOI2014 概率充電器
題目 題意 給定樹形結構的n個元件,每個元件有一定概率自己充電,還有一定概率通過某條邊給其他元件充電,求充電的元件期望個數。n 500000 題解 樹形結構肯定能想到樹形dp,全樹對某點產生的貢獻一般可以通過一到兩遍樹形dp計算得出,本題所求期望等於每個元件被充電的概率之和。設f i 表示i被充電的...
bzoj3566 SHOI2014 概率充電器
n個充電器連成一棵樹。第i個充電器有p i 的概率直接充電。每條導線有一定機率可以導電。可以導電的導線形成的聯通塊中只要存在直接充電的結點整個聯通塊的充電器均進入充電狀態。問期望進入充電狀態的充電器個數 顯然可知我們只需要得到f i 表示i進入充電狀態的概率 那麼a ns f i 我們把無根樹變有根...