從大到小不斷組合,如果開心1次的概率大於開心0次概率就可以break了
因為x會越來越小
#include
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
using namespace std;
int t,n,i,k;
double a[
10005
],b[
10005
],c[
10005];
double s,p,x,y,t;
intmain()
printf
("%.12lf\n"
,x);
}return0;
}
先對x從大到小排序,列舉x,那麼比x大的那一部分顯然都要扔到另一邊,比x小的那一部分挑乙個和x最接近的扔到另一邊
#include
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
#define n 100005
using namespace std;
struct www f[n]
;int t,n,i;
long
long pre,res,s1,s2,a,b;
bool cmp
(const www &x,
const www &y)
intmain()
cout<}}
每次敲掉乙個塊之後往四個方向搜尋即可
#include
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
#define n 2005
using namespace std;
int a[n]
[n];
int res,t,n,m,q,i,j,x,y;
void
dfs(
int x,
int y)
}int
main()
a[x]
[y]=
0; res++
;dfs
(x+1
,y);
dfs(x-
1,y)
;dfs
(x,y+1)
;dfs
(x,y-1)
;printf
("%d\n"
,res);}
}}
2019杭電多校第十場1003題解
思路 感覺這題滿足一種單調性,滿足排完序後試著合併到概率減小之後再合併概率都會減小的性質。於是就試著寫了幾組資料測試了一下,發現滿足這個規律。所以寫法就是先將所有的概率排序,然後逐個合併到會減小時找到最大值就好了。如果給的資料中有大於0.5的也可以直接輸出最大的數字,可以證明別的資料都會讓其減小,都...
2019牛客多校第十場
對於s n s n s n 考慮某個字母是從s n 1 s n 1 s n 1 轉移還是從s n 2 s n 2 s n 2 轉移 include define fo i,a,b for i a i b i define n 10005 using namespace std int t,n,q,p...
2019杭電多校第五場
有兩個題隊友補的,先安利一波 1005 permutation 1 hdu 6628 題意 給你乙個n和k,求n的全排列中,相鄰兩數的差值的陣列字典序第k小的排列 思路 其實就是兩個字,暴力.字典序第k小,k的範圍是n!跟10000取min,8!40320,是第乙個大於10000的數,所以當n小於等...