2026/3/24 11:00:09
网站建设
项目流程
购物网站的开发,企业vi系统,seo搜索引擎优化课程总结,陕西省建设厅官网证件查询P3657 [USACO17FEB] Why Did the Cow Cross the Road II P
题目背景
本题与 金组同名题目 在题意上一致#xff0c;唯一的差别是数据范围。
题目描述
Farmer John 饲养了 N N N 种奶牛#xff0c;编号从 1 1 1 到 N N N。一些品种的奶牛和其他奶牛间相处良好#xff…P3657 [USACO17FEB] Why Did the Cow Cross the Road II P题目背景本题与 金组同名题目 在题意上一致唯一的差别是数据范围。题目描述Farmer John 饲养了N NN种奶牛编号从1 11到N NN。一些品种的奶牛和其他奶牛间相处良好事实证明如果两个品种的奶牛编号分别为a , b a,ba,b当∣ a − b ∣ ≤ 4 |a-b| \leq 4∣a−b∣≤4时这两个品种的奶牛能友好相处否则不能友好相处。一条长长的道路贯穿整个农场道路的左侧有N NN个牧场每个品种的奶牛恰好占据一个牧场道路的右侧也有N NN个牧场每个品种的奶牛恰好占据一个牧场。为了让奶牛们安全穿过马路Farmer John 希望能在马路上画出一些人行道牛行道要求这些人行道满足如下条件人行道从左侧的某个牧场出发连接到右侧的某个牧场人行道连接的两个牧场的奶牛要能友好相处人行道不能在道路中间相交每个牧场只能与一条人行道相连。你需要帮 FJ 求出最多能有多少条人行道。输入格式输入第一行一个整数N NN1 ≤ N ≤ 10 5 1 \leq N \leq 10^51≤N≤105。接下来N NN行每行一个整数a i a_iai代表道路左侧第i ii个牧场的奶牛品种编号。接下来N NN行每行一个整数b i b_ibi代表道路右侧第i ii个牧场的奶牛品种编号。输出格式输出最多能画多少条人行道。输入输出样例 #1输入 #16 1 2 3 4 5 6 6 5 4 3 2 1输出 #15说明/提示保证a i , b i a_i,b_iai,bi均为从1 11到N NN的排列。C实现#includeiostream#includecstdio#includealgorithm#includecstringusingnamespacestd;#defineregregisterinlinechargc(){staticconstintbs122;staticunsignedcharbuf[bs],*st,*ed;if(sted)edbuffread(stbuf,1,bs,stdin);returnsted?EOF:*st;}#definegcgetcharinlineintread(){intres0;charchgc();boolfu0;while(!isdigit(ch))fu|(ch-),chgc();while(isdigit(ch))res(res3)(res1)(ch^48),chgc();returnfu?-res:res;}#defineN100005intn;inta[N],b[N];intpos[N];intc[N*9],cnt,tmp[10];intlow[N*9],ans;intmain(){nread();for(reginti1;in;i)a[i]read();for(reginti1;in;i)pos[b[i]read()]i;for(reginti1;in;i){inttop0;for(regintjmax(1,a[i]-4);jmin(n,a[i]4);j)tmp[top]pos[j];sort(tmp1,tmp1top);for(regintjtop;j1;j--)c[cnt]tmp[j];}low[ans]c[1];for(reginti2;icnt;i){if(c[i]low[ans])low[ans]c[i];else{inttlower_bound(low1,low1ans,c[i])-low;low[t]c[i];}}coutansendl;return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容