ACM-ICPC 2018徐州地区ネットワーク予選F GI(更新継続)
3198 ワード
/************************* F. Features Track *****************************
:https://nanti.jisuanke.com/t/31458
: 1 n,n , k k , k ,
:map pair int, ,
****************************************************************************/
#include
using namespace std;
map,int>mp1,mp2;
/** mp1 ,mp2 */
int main()
{
int t;
cin>>t;
while(t--){
int n,Max=0;
scanf("%d",&n);
mp1.clear();mp2.clear();
for(int i=1;i<=n;i++){
int k;
scanf("%d",&k);
while(k--){
int x,y;
scanf("%d%d",&x,&y);
if(mp2[make_pair(x,y)]==i) continue;
else if(mp2[make_pair(x,y)]==i-1||mp1[make_pair(x,y)]==0){
mp1[make_pair(x,y)]++;
mp2[make_pair(x,y)]=i;
}
else{
mp1[make_pair(x,y)]=1;
mp2[make_pair(x,y)]=i;
}
Max=max(Max,mp1[make_pair(x,y)]);
}
}
printf("%d
",Max=Max<2?0:Max);
}
return 0;
}
/************************* G. Trace **********************************
:https://nanti.jisuanke.com/t/31459
:n , , (0,0) ,
, , ,x,y xy
:set+
1. x,y x ,y , set,s1 x ,s2 y
2. , , lower_bound ,
, ans;
for(int i=n-1;~i;--i){
auto it=s1.lower_bound(x[i]);
ans+=x[i]-*--it;
s1.insert(x[i]);
it=s2.lower_bound(y[i]);
ans+=y[i]-*--it;
s2.insert(y[i]);
}
:
1.s1.lower_bound() set , , x[i] set ,
set , --it x[i] ,*--it
2.auto ,
set::iterator it;
3. , , , , ans
*************************************************************************/
#include
using namespace std;
#define ll long long
const int maxn = 1e5+5;
int x[maxn],y[maxn];
sets1,s2;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i
/******************************** I. Characters with Hash *****************************
:https://nanti.jisuanke.com/t/31461
: n , , ,
, 0, , 0,
:
1. , 1 2, 1 2
2. 0 ,ans=1, 1;
******************************************************************************************/
#include
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int n,ans,s=0;
char x,a[1000005];
cin>>n>>x>>a;
for(int i=0;i