題目思路:首先對於(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個方...