解題思路:
把兩個點的座標分別帶入方程組,如果最後兩個值相乘為負,即異號,計數器++。其中有乙個有趣的現象,從a到b的最短步數,可以變化為求a和b之間夾了多少條直線,那麼最後只要求出直線數,即可求出最小步數。
如果一條直線夾在a和b中間,那麼把a和b的座標帶入後,所得值相乘一定為負。資料很大,中間還涉及乘法,所以開成__int64.
完整**:
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#pragma comment(linker, "/stack:102400000,102400000")
typedef __int64 ll;
typedef double db;
typedef unsigned uint;
typedef unsigned long long ull;
/** constant list .. **/ //k[maxn];
int f(ll a , ll b , ll c , ll d , ll e)
int main()
int cnt = 0;
for(int i = 0 ; i < n ; i ++)
cout << cnt << endl;
}}
CF 284E 拓撲排序 母函式
題目思路 首先對於 bi,ci 的限制,建圖,用拓撲排序,先反向建圖,然後t d a i d表示深度,反向建圖in為0的d為1,接著對於樣例1,想新增乙個2,3和4也要跟著加進去,然後用拓撲排序,求出新增每個數所需要的總和 ac 有個坑點 t必須用long long include includeu...
CF 106 div 2 乘法dp 字尾自動機)
比賽連線 d 簡單區間dp 乙個合法的括號序列染色,一對匹配的括號必須有乙個被染成紅色或者藍色,另乙個不染色。被染色的相鄰括號不能相同顏色,問有幾種染色的方法。直接區間dp,轉移就是考慮每種情況然後相乘就可以了。include include define mod 1000000007 using ...
CF444 Div 1簡單題解
題意 給定帶點權和邊權的無向圖,現在讓你選一些點,使得 點權和 被選點對間的邊權和 最大。思路 不難證明,選擇邊和對應的兩點是最優的。include define rep i,a,b for int i a i b i using namespace std const int maxn 20001...