20190805杭電多校第五場

2021-09-25 23:15:23 字數 659 閱讀 3701

1004 equation

做法很簡單,寫起來容易混。

首先想到去絕對值。因為滿足a>0,顯然當x增大時ax+b的值也在增大,所以可以對所有(a,b)按

顯然存在n+1個區間,每個區間都可以將式子分為兩部分,前半部分均為-ax-b,後半部分均為ax+b。

區間依次為

預處理a和b的負的字首和與正的字尾和,再列舉每個區間,即可得到當前的表示式。

形如suma*x+sumb=c,若suma為0且sumb為c,則說明無窮解;若suma為0且sumb不為c或者求出的值

為了便於處理分數,最好統一將分母的負號去掉。

注意判斷分數大小時,分子分母的乘積可能爆int,需要使用long long。

ac**:

#includeusing namespace std;

const int maxn=1e5+5;

int t,n,c,suma,sumb,tmp,sum[4][maxn],fz,fm;

bool f;

struct node

bool operator

else if(suma!=0)

}} if(f) puts("-1");

else

} return 0;

}

2019杭電多校第五場

有兩個題隊友補的,先安利一波 1005 permutation 1 hdu 6628 題意 給你乙個n和k,求n的全排列中,相鄰兩數的差值的陣列字典序第k小的排列 思路 其實就是兩個字,暴力.字典序第k小,k的範圍是n!跟10000取min,8!40320,是第乙個大於10000的數,所以當n小於等...

杭電多校(五)2019 08 05 暑假集訓

hdu 6624 hdu 6625 hdu 6626 hdu 6627 hdu 6628 hdu 6629 題目大意 求乙個字串每個字尾和字串的最長字首長度的和 解決思路 擴充套件kmp裸題 居然卡cin,cout qwq include include include include includ...

2019杭電多校第五場補題

1001 fraction bx a mod p 可以轉換為 bx kp a.因為a的範圍是 0,b 則列出不等式 又因為1p x b k p x 1 frac frac frac xp k b x 1p 據說是乙個經典問題 給你a,b,c,d,求最簡分式x y frac yx 滿足a b x y ...