ACM-ICPC 2018 徐州賽區網路預賽 F. Features Track
- 1000ms
- 262144K
Morgana is learning computer vision, and he likes cats, too. One day he wants to find the cat movement from a cat video. To do this, he extracts cat features in each frame. A cat feature is a two-dimension vector <x, y>. If xi=xj and yi = yj, then <xi, yi> <xj,yj> are same features.
So if cat features are moving, we can think the cat is moving. If feature <a, b> is appeared in continuous frames, it will form features movement. For example, feature <a,b> is appeared in frame 2,3,4,7,8 then it forms two features movement 2-3-4 and 7-8 .
Now given the features in each frames, the number of features may be different, Morgana wants to find the longest features movement.
Input
First line contains one integer T(1≤T≤10) , giving the test cases.
Then the first line of each cases contains one integer n (number of frames),
In The next n lines, each line contains one integer ki ( the number of features) and 2ki intergers describe ki features in ith frame.(The first two integers describe the first feature, the 3rd and 4th integer describe the second feature, and so on).
In each test case the sum number of features N will satisfy N≤100000 .
Output
For each cases, output one line with one integers represents the longest length of features movement.
樣例輸入
1
8
2 1 1 2 2
2 1 1 1 4
2 1 1 2 2
2 2 2 1 4
0
0
1 1 1
1 1 1
樣例輸出
3
題目來源
題目大意:有n個區域,每個區域有k個點(x,y)。各點(x,y)出現的區域中最長的連續區域的長度的最大值
比如,
1 //1組測試
8 //8個區域
2 1 1 2 2 //區域1兩個點 (1,1) (2,2)
2 1 1 1 4 //區域2兩個點 (1,1) (1,4)
2 1 1 2 2 //區域3兩個點 (1,1) (2,2)
2 2 2 1 4 //區域4兩個點 (2,2) (1,4)
0 //區域5零個點
0 //區域6零個點
1 1 1 //區域7一個點 (1,1)
1 1 1 //區域8一個點 (1,1)
點(1,1)出現在區域1,2,3,7,8 最長的連續區域為1-2-3長度為3
點(2,2)出現在區域1,3,4 最長的連續區域為3-4長度為2
點(1,4)出現在區域2,4最長的連續區域為2或4長度為1
因此最後答案為3
題解:將二維座標用一個數表示,由於x+y的值小於等於100000,因此可以將(x,y)用數 z=x*100001+y 表示,其中x=z/100000 ,y=z%100000 。使用對映map<int,int>s[2],鍵表示位置座標化成的整數,值表示以此區域的這個點結尾的最長連續區間的長度,s[0]記錄上一個區間的點資訊,s[1]記錄本區間的點資訊,由於要連續,因此如果本區域出現了上一個區域沒有出現的點,那麼本區域以這個點結尾的最長連續區間的長度為1,否則為上一個區域相同結點的對應的值加一,每次記錄最大值即可。
AC的C++程式碼:
#include<iostream>
#include<map>
using namespace std;
typedef long long ll;
ll mod=100001;
map<ll,ll>s[2];//記錄上一個區域和此區域的結點資訊
int main()
{
int t,r,n,x,y,num;
scanf("%d",&t);
while(t--){
s[0].clear();
s[1].clear();
ll ans=0;
scanf("%d",&r);
for(int i=1;i<=r;i++){
s[i%2].clear();
scanf("%d",&num);
for(int j=1;j<=num;j++){
scanf("%d%d",&x,&y);
ll pos=x*mod+y;//將本區域的點位置化成1維的數
s[i%2][pos]=+s[(i-1)%2][pos]+1;
if(ans<s[i%2][pos])//更新答案
ans=s[i%2][pos];
}
s[(i-1)%2].clear();//清空上一個區域的結點資訊
}
printf("%lld\n",ans);
}
return 0;
}
相關文章
- ACM-ICPC 2018 徐州賽區網路預賽ACM
- ACM-ICPC 2018 徐州賽區網路預賽 I. Characters with Hash【簽到題】ACM
- ACM-ICPC 2018 瀋陽賽區網路預賽ACM
- ACM-ICPC 2018 南京賽區網路預賽__B The writing on the wall【列舉】ACM
- ACM-ICPC 2018 南京賽區網路預賽__E AC Challenge【狀態壓縮+DP】ACM
- 2018 徐州網路賽 G 題解
- ACM-ICPC 2018 南京賽區網路預賽__K The Great Nim Game【博弈論+費馬小定理+DP】ACMGAM
- ACM-ICPC 2018 南京賽區網路預賽 __G Lpl and Energy-saving Lamps【線段樹+模擬】ACMLAMP
- ACM-ICPC 2018 南京賽區網路預賽__J. Sum【尤拉篩法+質因子分解+思維】ACM
- ACM-ICPC 2018 南京賽區網路預賽__L. Magical Girl Haze 【Dijkstra演算法+分層圖思想】ACM演算法
- 2018 icpc徐州站網路賽 H Ryuji doesn't want to study
- 2018 瀋陽賽區網路預賽 I.Lattice's basics in digital electronics(模擬)Git
- 第 43 屆 ACM-ICPC 亞洲區域賽(徐州)現場賽名額分配規則及相關說明ACM
- 2018 北京賽區網路預選賽 A. Saving Tang Monk II(BFS+優先佇列)佇列
- ICPC2018徐州網路賽 H.Ryuji doesn't want to study ( 樹狀陣列陣列
- 2018華為網路技術大賽
- 2024 ICPC 網路預選賽 第 2 場
- 2018icpc 南京網路賽L Magical Girl Haze
- 2018王者榮耀KPL秋季賽賽程表 2018王者榮耀KPL秋季賽賽制
- ACM-ICPC 2018 決賽落幕,中國戰隊一金兩銀戰績收官ACM
- 新生賽及預選賽 10
- 第43屆ACM-ICPC國際大學生程式設計競賽 亞洲區域賽南京站現場賽名額分配相關說明ACM程式設計
- 2024春秋杯網路安全聯賽夏季賽-PWN-Writeup
- 2016中國“網際網路+”創業創新大賽(西北+山西)賽區決賽成功舉辦 優秀專案將會師海口...創業
- 2016中國“網際網路+”創業創新大賽(西北+山西)賽區決賽成功舉辦優秀專案將會師海口創業
- 2024中國工業網際網路安全大賽智慧家電行業賽道選拔賽行業
- 2024ccpc網路賽補題
- 2018 ICPC南京區域賽題解 更新至 8 題
- 2021年春秋杯網路安全聯賽秋季賽 勇者山峰部分wp
- 新興科技+網際網路創新大賽,科技+社會公益專項賽
- 第八屆“網際網路+”大賽 | 雲原生賽道邀你來挑戰
- zoj-4053(2018ICPC青島網路賽K題)啟發式分裂
- 西湖論劍·2022中國杭州網路安全技能大賽線上初賽火熱開賽
- 燃動峽谷!2022江蘇移動王者榮耀電競挑戰賽徐州站即將開賽
- 2018年省賽c組
- 高校網路安全管理運維賽2024運維
- 2018天梯賽、藍橋杯、(CCPC省賽、邀請賽、ICPC邀請賽)校內選拔賽反思總結!
- 新興科技+網際網路創新大賽,青年創客專項賽介紹