題意:
時鐘的三個指標在兩兩之間至少d°的時候是開心的,求開心時間佔一天的乙個百分比。
思路:
我們看到這個百分比有三位小數,精度很高。
一天有24h,24*60min,24*60*60s,那麼最小單位是秒。
換一種方法,考慮一天360*2度。但是可以看到,從秒到分到時間,這樣轉換到度來說,精度更高吧。
然後題目是要保證三個指標最少需要保證d°。
那麼我們控制時針每個小時,使得分針最小,轉動秒鐘。從最小的臨界條件,累加到最大的臨界狀態。那麼考慮時間。應該也是最優精度吧。
①列舉每個小時,時針的角度=>最小分針的角度=>最小的秒鐘角度,利用秒針列舉到最大的臨界狀態;列舉次數是24*60*60;
—————————–此時此歌:借過–印子月
後來開始打的時候發現這個d是實數,所以我們假設這個d是極端的d,小數點後6位,那麼方法①貌似不行啊。所以還是到d度上來。
用角度,但是怎麼列舉呢。總體的最小臨界到最大臨界是不變的,只是列舉方向換了。從被列舉物件秒針變成比單位度更小的單位。
然後可以看到一天的開始是0°0』0」到720°0』0」,那麼就從最小的秒列舉開始,列舉次數是360*60*60,比剛剛的一天多拆分了15倍;
②:然後我直接想的就是從起點到終點中間判斷一下就好了。
剛剛還卡機了。。。這個角度就是秒針的角度。
後來。。。其實把精度擴大的方法就是擴大角度的精度,我把一秒擴大1000倍,這樣列舉。。。後來發現就是這樣吧。。。我擴大360。。也就是列舉360*30*60*24次
—————————此時此歌:你的愛–王力巨集
mdzz睡覺。神特麼煩
#include
using
namespace
std;
typedef
long
long ll;
typedef
unsigned
long
long ull;
const
double eps=1e-6;
const
double pi=acos(-1.0);
const
int mod=998244353;
const
int inf=0x3f3f3f3f;
const
int n=1e5+10;
double x[n],y[n];
int main()
printf("%.3lf\n",(double)xx/(double)nn*100);
}}
hdoj5792 樹狀陣列 未完待續
題意 求有多少種四個數滿足aa ab,ac ad,1 a b n 1 c d n 思路 只要找到兩種情況就成立了。在序列中對於乙個元素在他的後面存在比他大的,還有就是存在對於乙個元素在他的後面比他小的,那麼對於乙個元素的 種情況總和 種情況總和 但是這樣不難發現是有重複的。大哥說有四種可能。前面比他...
nginx 未完待續
yum install y pcre yum install y pcre devel yum install y openssl yum install y openssl devel yum install y zlib yum install y gccyum安裝 yum install y ...
sqlparse(未完待續)
sqlparse.split sql,encoding none sql 包含乙個或多個sql語句的字串 encoding 語句的編碼 可選 sql select from foo select from bar sql list sqlparse.split sql print sql list ...