首页 > TAG信息列表 > USACO06DEC

P2853 [USACO06DEC]Cow Picnic S

P2853 [USACO06DEC]Cow Picnic S   和这道差不多P3916 图的遍历,图的遍历通过方向建边使子节点被标记最大编号。这题可以通过奶牛找牧场 分析:从奶牛的位置开始dfs,对每个被dfs的点进行标记,最后统计有多少个点的标记的数量等于奶牛的值。 代码: #include<iostream> #include<algorit

P2853 [USACO06DEC]Cow Picnic S

P2853 [USACO06DEC]Cow Picnic S 题目描述 The cows are having a picnic! Each of Farmer John’s K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ N ≤ 1,000) pastures, conveniently numbered 1…N. The pastures are connected by M (1 ≤ M ≤ 10,000) one-way

P2853 [USACO06DEC]Cow Picnic S

思路:反向建边,以每一个农场为起点dfs一遍,得到从这个农场开始能够访问到的奶牛数目cnt,若cnt = k说明所有的奶牛都能到这个农场,结果+1. 复杂度:\(O(n(n+n+m))=O(nm)\),1e7不会超时 #include<iostream> #include<cstring> using namespace std; const int N = 1010, M = 10010; int h

P2850 [USACO06DEC]Wormholes G(负环判定)

题目描述 John 在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前)。 John 的每个农场有 mmm 条小路(无向边)连接着 nnn 块地(从 1∼n1 \sim n1∼n 标号),并有 www 个虫洞。 现在 John 想借助这些虫洞来回到过去(出

P2853 [USACO06DEC]牛的野餐Cow Picnic

------------------------- 长时间不写代码了,从学校中抽身出来真的不容易啊 ------------------------ 链接:Miku ----------------------- 这道题的思路就在于建反图,如果每一头牛都能到达的话,那么在反图上,这个点也一定能到达每一头牛。 那么我们的目的就明确了,找到所有能在反图上

[USACO06DEC]牛奶模式Milk Patterns

Description 求字符串 \(s\) 的最长可重叠重复 \(k\) 次子串。 Solution 重复出现了 \(k\) 次,相当于我们选择了 \(k\) 个后缀,求他们的 \(lcp\)。 显然 \(k\) 个后缀的 \(rank\) 是连续的,所以重复出现 \(k\) 次的前缀就是 \(min(height[l+1\dots l+k-1])\)。 所以我们需枚举 \(i\),

[洛谷]P2853 [USACO06DEC]牛的野餐Cow Picnic (#图的遍历)

题目描述 The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ N ≤ 1,000) pastures, conveniently numbered 1...N. The pastures are connected by M (1 ≤ M ≤ 10,000) one-way paths (no path connects a pasture

题解-P2852 [USACO06DEC]牛奶模式Milk Patterns

SA+单调队列,太简单了就放在这里吧。 #include<iostream>#include<cstdio>using namespace std;const int N=2e4+4;const int M=1e6+6;int t1[N],t2[N],c[M];int sa[N],rk[N],ht[N];int a[N];void gtsa(int n,int m){ int *x=t1,*y=t2; int i,j,p=0; for(i=1;i<=n;i