摘要:
这个城市的路线只能由前面的城市过来(拓扑结构),因此跟自己前面最大经过城市数 +1 比较取最大即可 const int N=1e5+10; vector<int> g[N]; int f[N]; int din[N]; int n,m; void topo() { for(int i=1;i<=n; 阅读全文
摘要:
spfa const int N=1510; vector<PII> g[N]; LL dist[N]; bool vis[N]; int n,m; void spfa() { memset(dist,-0x3f,sizeof dist); queue<int> q; q.push(1); dist 阅读全文
摘要:
题目链接 注意最后统计要包含所有出度为0的点上的食物链个数 const int N=5010; vector<int> g[N]; int din[N],dout[N]; int f[N]; int n,m; int topo() { queue<int> q; for(int i=1;i<=n;i 阅读全文
摘要:
显然地,本题中各项工作是有一定的依赖条件的,也就是说我们在进行工作 X 之前可能需要先进行一些其他的工作。 而完成工作 X 所需的时间和所有 X 所依赖的工作完成的时间的最大值有关。(应该还好理解吧) 在这道题中,我们可以列出一个简单的 DP 转移方程: $$f_i=\max\{pre_i\}+a_ 阅读全文
摘要:
const int N=1e5+10; vector<int> g[N]; bool vis[N]; int n,m; void dfs(int u) { vis[u]=true; cout<<u<<' '; sort(g[u].begin(),g[u].end()); for(int i=0;i< 阅读全文
摘要:
暴力:\(O(n^4)\) const int N=10; int f[N][N][N][N]; int g[N][N]; int n; int main() { cin>>n; while(1) { int a,b,c; cin>>a>>b>>c; if(!a && !b && !c) break 阅读全文