Sdoi2016 平凡的骰子

2022-05-03 08:00:09 字數 2272 閱讀 1359

這是一枚平凡的骰子。它是乙個均質凸多面體,表面有n個端點,有f個面,每一面是乙個凸多邊形,且任意兩面不共面。將這枚骰子拋向空中,骰子落地的時候不會發生二次彈跳(這是一種非常理想的情況)。你希望知道最終每一面著地的概率。

每一面著地的概率可以用如下的方法計算:我們假設o為骰子的重心,並以o為球心,做半徑為1的單位球面(記為s)。我們知道s的表面積即單位球的表面積,為4*pi,這裡pi為圓周率。對於骰子的某一面c來說,球面s上存在一塊區域t滿足:當下落時若骰子所受重力方向與s的交點落在t中,則c就是最終著地的一面。那麼c著地的概率為區域t的面積除以4*pi。

我們保證:每一面著地的時候,重心的垂心都恰好在這一面內。也就是說不會出現擺不穩的情況。

第一行輸入兩個整數,分別表示端點總數n與表面總數f,分別從1開始編號。

之後n行,每行有三個浮點數x,y和z,給出了每乙個端點的座標。之後f行依次描述了每一塊表面,首先給出不小於3的整數d,表示這一面的端點個數,之後d個整數按照逆時針方向(視角在骰子的外面)給出了每乙個端點的編號。

輸出f行,第i行有乙個浮點數,表示第i個面著地的概率。

本題中您的輸出應該保留距離答案最近的7位小數,即在需要保留7位小數的前提之下與標準答案最接近。資料保證可以避免對小數點後第八位四捨五入後產生的精度誤差。

8 6

1 0 0

1 1 0

1 0 1

1 1 1

0 0 0

0 1 0

0 0 1

0 1 1

4 1 2 4 3

4 2 6 8 4

4 6 5 7 8

4 5 1 3 7

4 3 4 8 7

4 1 5 6 2

copy

0.1666667

0.1666667

0.1666667

0.1666667

0.1666667

0.1666667

copy

首先存在20%的資料,骰子為長方體。

其次存在20%的資料,骰子為四面體。

餘下的資料中有30%的資料,每一面都是三角形。

對於100%的資料,4<=n<=100且4<=m<=100,所有座標的絕對值都在10000以內。

sdoi 2016 round2 day2

#include#include

using

namespace

std;

inline

void read(int &x)

const

int n=105

;typedef

double

real;

const real pi=acos(-1

);struct

point

point(real _x,real _y,real _z):x(_x),y(_y),z(_z){}

point

operator +(const point &a)const

point

operator -(const point &a)const

point

operator ^(const point &a)const

real

operator *(const point &a)const

point

operator /(const real &a)const

const

real len()

}p[n],h[n*n];

intn,m,htot,f[n][n];

real val[n*n];

intmain()

}point u=p[1

];

for(int i=1;i<=m;i++)

}u=point(0,0,0

); real valtot=0

;

for(int i=1;i<=htot;i++)

u=u/valtot;//

球心座標

for(int i=1;i<=m;i++)

ans-=pi*(f[i][0]-2

); printf(

"%.7lf\n

",ans/4/pi);

}return

0;

}

SDOI2016 數字配對

傳送門 裸費用流。建邊 對於a i a j pr ime a j a i frac prime a j a i a j a i prim e a j a i 需要i ii向j n j nj n連,並且j jj向i n i ni n連。費用即為c i c j c i c j c i c j 流量無窮大...

SDOI2016 數字配對

點此看題 考慮這個條件ai是aj的倍數,且ai aj是乙個質數,滿足這個條件就必須要滿足下面兩個條件 第二個條件很重要,它告訴我們可以把數字的cnt cntcn t奇偶劃分,就能得到乙個二分圖,我們就可以想網路流的方面想,圖是這樣建的 然後我們在建好的圖上跑費用流,由於圖是二分圖,最長路一定是單調遞...

SDOI 2016 數字配對

戳一戳 感覺自己調了半天然後模板打錯了。好難過。rsduheiutfhnesrfnsjkenfkj 不bibi了我們講一下如何建圖。我們可以發現這2個數字之間的關係是雙向的。那我們怎麼辦呢 手動滑稽 這裡有乙個很神奇的結論 如果a為b的因數且b除以a的值為質數,那麼將a與b質因數分解後a與b的指數差...