Problem A meeting

https://ac.nowcoder.com/acm/contest/884/A

题意:

题解:

C++版本一

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
//树直径都是这么求的
int vis[N];
int len111,lll;///保留最长长度和距离最远的点
int a[N];
vector<int> son[N];
void dfs(int len,int fa,int x)
{for(int i=0;i<son[x].size();i++)if(son[x][i]!=fa){if(vis[son[x][i]]==1){if(len111<len){len111=len;lll=son[x][i];}}dfs(len+1,x,son[x][i]);}
}
int main()
{ios::sync_with_stdio(false);int n,k;cin>>n>>k;for(int i=1;i<n;i++){int a,b;cin>>a>>b;son[a].push_back(b);son[b].push_back(a);}for(int i=1;i<=k;i++){cin>>a[i];vis[a[i]]=1;}dfs(1,a[1],a[1]);//cout<<lll<<' '<<len111<<endl;dfs(1,lll,lll);cout<<(len111+1)/2<<endl;
}

Problem B xor

题意:

题解:

C++版本一

Problem C sequence

https://ac.nowcoder.com/acm/contest/884/C

题意:

题解:

C++版本一

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=3e6+10;
const int INF=0x3f3f3f3f;
LL n,top,a[N],b[N],L[N],R[N],Sum[N],Lmin[N],Rmin[N];
struct dat{LL idx,val;
}S[N];int main()
{cin>>n;for (int i=1;i<=n;i++) scanf("%lld",&a[i]);for (int i=1;i<=n;i++) scanf("%lld",&b[i]);for (int i=1;i<=n;i++) Sum[i]=Sum[i-1]+b[i];a[n+1]=-INF;for (int i=1;i<=n+1;i++) {while (top && a[i]<S[top].val) {int id=S[top].idx;L[id]=S[top-1].idx+1; R[id]=i-1;top--;}top++; S[top].idx=i; S[top].val=a[i];}LL sum=0,Max=0,id=0;for (int i=1;i<=n;i++) {sum+=b[i];Lmin[i]=id+1;if (sum>Max) Max=sum,id=i;}sum=0; Max=0; id=n+1;for (int i=n;i;i--) {sum+=b[i];Rmin[i]=id-1;if (sum>Max) Max=sum,id=i;}LL ans=-INF;for (int i=1;i<=n;i++)if (a[i]>=0) ans=max(ans,a[i]*(Sum[R[i]]-Sum[L[i]-1]));else {LL lm=max(L[i],Lmin[i]),rm=min(R[i],Rmin[i]);ans=max(ans,a[i]*(Sum[rm]-Sum[lm-1]));}cout<<ans<<endl;return 0;
}

Problem D triples I

https://ac.nowcoder.com/acm/contest/884/D

题意:

题解:

C++版本一

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+7;
int main()
{int zs;cin>>zs;while(zs--){long long n;vector<int>s,ans,ans2;cin>>n;if(n%3==0) {cout<<1<<' '<<n<<endl;continue;}int d=n%3;while(n){s.push_back(n%2);n/=2;}//for(int i=0;i<s.size();i++)cout<<s[i];cout<<endl;for(int i=0;i<s.size();i++) ans.push_back(0);int f=0,t;for(int i=d-1;i<s.size();i+=2)if(s[i]==1){f=1;s[i]=0;ans[i]=1;break;}//for(int i=0;i<s.size();i++)cout<<s[i];cout<<endl;if(f==1){  f=0;for(int i=d%2;i<s.size();i+=2)if(s[i]==1){ans[i]=1;f=1;break;}if(f==0){int ttt=0;for(int i=d-1;i<s.size();i+=2)if(s[i]==1){ans[i]=1;f=1;ttt++;if(ttt==2)break;}}}else{int ttt=0;for(int i=d%2;i<s.size();i+=2)if(s[i]==1){s[i]=0;ans[i]=1;ttt++;if(ttt==3){s[i]=1;ans[i]=1;break;}}}long long a1=0,a2=0,d1=1,d2=1;
//for(int i=0;i<s.size();i++)cout<<s[i];cout<<endl;
//for(int i=0;i<ans.size();i++)cout<<ans[i];cout<<endl;for(int i=0;i<s.size();i++){a1+=s[i]*d1;d1*=2;}for(int i=0;i<ans.size();i++){a2+=ans[i]*d2;d2*=2;}cout<<2<<' '<<a1<<' '<<a2<<endl;}
}

Problem E triples II

题意:

题解:

C++版本一

Problem F merge

题意:

题解:

C++版本一

Problem G tree

题意:

题解:

C++版本一

Problem H RNGs

题意:

题解:

C++版本一

Problem I string

题意:

题解:

C++版本一

Problem J free

https://ac.nowcoder.com/acm/contest/884/J

题意:

题解:

C++版本一

# include <cstdio>
# include <iostream>
# include <queue>
# include <cstring>
# define mp make_pair
# define R register intusing namespace std;int h,n,m,k,s,t,a,b,c,firs[3009];
struct edge
{int co,too,nex;
}g[10009];
int d[3009][3009];
bool vis[3009][3009];
typedef pair <int,int> pii;
priority_queue <pii,vector<pii>,greater<pii> > q;void add(int x,int y,int co)
{g[++h].too=y;g[h].co=co;g[h].nex=firs[x];firs[x]=h;
}void dis()
{memset(d,127,sizeof(d));d[s][0]=0;q.push(mp(0,s));int beg,j,x;while (q.size()){beg=q.top().second;q.pop();x=beg/n;beg%=n;if(vis[beg][x]) continue;vis[beg][x]=true;for (R i=firs[beg];i;i=g[i].nex){j=g[i].too;if(d[beg][x]+g[i].co<d[j][x]){d[j][x]=d[beg][x]+g[i].co;q.push(mp(d[j][x],j+n*x));}if(x==k) continue;if(d[j][x+1]>d[beg][x]){d[j][x+1]=d[beg][x];q.push(mp(d[j][x+1],j+(x+1)*n));}}}
}int main()
{scanf("%d%d%d%d%d",&n,&m,&s,&t,&k);for (R i=1;i<=m;++i){scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);}dis();printf("%d\n",d[t][k]);return 0;
}

Problem K number

https://ac.nowcoder.com/acm/contest/884/K

题意:

题解:

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 7;
int sum[maxn], cnt[3];
int main()
{string str; cin >> str;int len = str.length();long long ans = 0;int l = 0; int t = 0;cnt[1] = -1; cnt[2] = -1;//while (str[l] == '0') l++;for (int i = l; i < len; i++){sum[i+1] = (sum[i] + (str[i] - '0')) % 3;//cout << "? " <<i<<' '<< sum[i+1] << endl;cnt[sum[i+1]]++;if (str[i] == '0'){t++;if (str[i+1] && str[i+1] == '0') {ans += cnt[sum[i]];//cout << sum[i]<<' '<<cnt[sum[i]] <<" >> "<< ans << endl;}}}cout << ans + t << endl;return 0;
}

2019牛客暑期多校训练营(第四场)相关推荐

  1. 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...

  2. 2019牛客暑期多校训练营(第一场)E-ABBA(dp)

    链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...

  3. 2019牛客暑期多校训练营(第一场)

    传送门 参考资料: [1]:官方题解(提取码:t050 ) [2]:标程(提取码:rvxr ) [3]:牛客题解汇总 A.Equivalent Prefixes(单调栈) •题意 定义两个数组 u,v ...

  4. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...

  5. 【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNav=acm 来源:牛客网 Given a maze with N rows an ...

  6. 【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/F 来源:牛客网 Given 2N people, you need to assign each of ...

  7. 【2019牛客暑期多校训练营(第二场) - D】Kth Minimum Clique(bfs,tricks)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/D 来源:牛客网 Given a vertex-weighted graph with N vertice ...

  8. 【2019牛客暑期多校训练营(第一场) - A】Equivalent Prefixes(单调栈,tricks)

    题干: 链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Two arrays u and v each with m distinct elem ...

  9. 【2019牛客暑期多校训练营(第一场) - H】XOR(线性基,期望的线性性)

    题干: 链接:https://ac.nowcoder.com/acm/contest/881/H 来源:牛客网 Bobo has a set A of n integers a1,a2,-,ana1, ...

  10. 2019牛客暑期多校训练营(第九场)H Cutting Bamboos(主席树+二分)

    链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 题目描述 There are n bamboos arranged in a line. The ...

最新文章

  1. 机器学习系列 5:特征缩放
  2. TCP超时与重传机制与拥塞避免
  3. Java小程序—录屏小程序(上半场)
  4. 通过程序获得SQL Server自增型字段的函数:GetKey
  5. C# 两时间,时间间隔
  6. cad怎么把图层英文变成中文_CAD图层管理器昨天是中文的今天怎么变英文 – 手机爱问...
  7. 即将改变软件开发的5个Java9新特性
  8. mysql 版本太高_mysql创建新库以及解决版本过高8.0以上导致navicat无法连接的问题...
  9. 绝大多数程序员不会测试
  10. ghost64怎么装linux,CentOS 7.5上安装Node.js搭建Ghost个人博客
  11. boost库asio错误码
  12. HDU_4585_Shaolin
  13. vue实用echart饼图legend显示百分比
  14. 日语(五十元音)_01
  15. PDN建立失败场景(二)
  16. android rom包的组成结构,AndroidROM的制作与结构构成..doc
  17. eai java实现,月光软件站 - 编程文档 - Java - 建立EAI方式与SAI方式之间的通信
  18. new RegExp / / 正则
  19. 用明道云搭建一个住宅式物业管理系统
  20. PDF文件限制密码如何取消

热门文章

  1. 华为正式宣布鸿蒙,空欢喜一场?华为正式宣布,鸿蒙系统用作他用
  2. 里bl2和bl3为什么分开_分手挽回:为什么不建议过早同居
  3. python configparse_python中ConfigParse模块的用法
  4. dataset中的数据批量导入oracle数据库,c#如何将dataset中的数据批量导入oracle数据库...
  5. linux挂载固硬盘装,linux下安装新硬盘并挂载mount
  6. mysql开机启动脚本_centos简单的mysql开机自启和自动保存脚本
  7. 区块链分叉如何解决_什么是分叉区块链又该如何分叉
  8. java jpopupmenu事件_Java+Swing+常用事件和监听器接口
  9. 四十七、微信小程序开发页面结构WXML
  10. 六十六、Leetcode数组系列(中篇)