CF 284E 拓撲排序 母函式

2021-08-30 08:41:59 字數 780 閱讀 3680

題目思路:首先對於(bi,ci)的限制,建圖,用拓撲排序,先反向建圖,然後t-=d*a[i],d表示深度,反向建圖in為0的d為1,接著對於樣例1,想新增乙個2,,3和4也要跟著加進去,然後用拓撲排序,求出新增每個數所需要的總和

ac**:有個坑點:t必須用long long

#include #includeusing namespace std;

#define mod 1000000007

#define maxn 500

long long sum[maxn];

int deep[maxn];

int in1[maxn];

int out1[maxn];

int in2[maxn];

int out2[maxn];

vectormaps1[maxn];

vectormaps2[maxn];

long long dp[150000];

long long n,m,t;

int cnt=0;

void topo2()

int n1,n2;

while(!q.empty())

while(!q.empty())}}

}int main()

topo2();

if(t<0||cnt!=n)

printf("0\n");

else

}printf("%lld\n",dp[t]);

}return 0;

}

CF 284 Div 2 C (幾何規律)

解題思路 把兩個點的座標分別帶入方程組,如果最後兩個值相乘為負,即異號,計數器 其中有乙個有趣的現象,從a到b的最短步數,可以變化為求a和b之間夾了多少條直線,那麼最後只要求出直線數,即可求出最小步數。如果一條直線夾在a和b中間,那麼把a和b的座標帶入後,所得值相乘一定為負。資料很大,中間還涉及乘法...

拓撲排序 cf 102219 J

大概就是讓盤子從小到大排序 拓撲排序的思想就是把入度為0的找出來,然後讓和他連線的入度都 1,重複。include include include include include include include include include include include include incl...

CF刷題總結 CF706E鍊錶

這題目應該要秒做出來的。首先看到二維,又沒什麼思路就直接降維 考慮一維的情況,就是一段連續的和另一端連續的交換,最快的當然是鍊錶模擬了。所以考慮到二維中也不應該用陣列儲存,而是鍊錶表示。但是由於二維的話,不可能是簡單的鍊錶。所以考慮每乙個矩形和旁邊的關係。肯定就是四周的,但是只考慮單向,那就是2個方...