桂林电子科技大学第三届ACM程序设计竞赛-题解
这两天几个比赛都在一起,谁顶的住啊,打(签到)了6场,结果还有没有中奖,太真实了ヽ(`Д´)ノ︵ ┻━┻ ┻━┻
A-串串
https://ac.nowcoder.com/acm/contest/558/A
思路:除了暴力,没思路。。。
B-重复
https://ac.nowcoder.com/acm/contest/558/B
思路:签到,用map去重即可。。
#include<iostream>
#include<map>
using namespace std;
typedef long long LL;int n,m;
map<string,int> imap;int main()
{ios::sync_with_stdio(false);cin>>n>>m;string str;for(int i=0;i<n;++i){cin>>str;imap[str]=1;}cout<<imap.size()<<endl;return 0;
}
C-二元
https://ac.nowcoder.com/acm/contest/558/C
思路:优先队列,遍历a_i的最小值,再从中找最大b_i.
先将(a_i,b_i)按照a_i由小到大排序,在将前k大a_i对应的b_i加入优先队列Q(小的先出队),这样遍历a_i时,将b_i加入队列Q,再出队列将最小的b_i淘汰,更新ans即可
Code:
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
typedef pair<int,int> pr;const int MAX_N=1e5+5;
int n,m;
pr a[MAX_N];
priority_queue<int,vector<int>,greater<int> > Q; int main()
{ios::sync_with_stdio(false);cin>>n>>m;for(int i=0;i<n;++i)cin>>a[i].first>>a[i].second;sort(a,a+n);int r=n-1,M1,M2=a[n-1].second;while(r>=0&&n-r<=m){Q.push(a[r].second);M1=a[r].first; M2=min(M2,a[r].second);--r;}int ans=M1+M2;while(r>=0){Q.push(a[r].second); Q.pop();ans=max(ans,a[r].first+Q.top());--r;}cout<<ans<<endl;return 0;
}
D-寻找
不会-.-
E-区间
https://ac.nowcoder.com/acm/contest/558/E
链接:https://ac.nowcoder.com/acm/contest/558/E
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小猫在研究序列。
小猫在研究单调性。
给定一个长度为N的序列a1,a2,…,aN,请你选出一个最长的区间[l,r](1≤l≤r≤N),满足al≤al+1≤…≤ar。
如果有多个,请输出l最小的。
输入描述:
第一行一个正整数T,表示数据组数。每组数据的第一行一个正整数N。接下来一行N个正整数a1,a2,…,aN。
输出描述:
T行,每行两个正整数l,r,表示选出的区间。
示例1
输入
复制
4 5 1 2 3 4 5 5 5 4 3 2 1 5 5 3 4 1 2 5 3 4 5 1 2
输出
复制
1 5 1 1 2 3 1 3
备注:
1≤T,N,ai≤1000
思路:按题目要求遍历一遍即可
Code:
#include<iostream>
using namespace std;
typedef long long LL;const int MAX_N=1e3+5;
int n,T;
int dp[MAX_N];int main()
{ios::sync_with_stdio(false);cin>>T;while(T--){cin>>n;int Max=0,Sum=1,p=n,pre=-1;for(int i=1,x;i<=n;++i){cin>>x;if(pre!=-1){if(x>=pre){++Sum;}else{if(Sum>Max){Max=Sum;p=i-1;}Sum=1;}}pre=x;}if(Max<Sum){Max=Sum;p=n;}cout<<p-Max+1<<" "<<p<<endl; }return 0;
}
F-点对
https://ac.nowcoder.com/acm/contest/558/F
思路:Flody..
Code :
#include<iostream>
using namespace std;
typedef long long LL;const int MAX_N=1e3+5;
int n,m;
int G[MAX_N][MAX_N];void Flody();
int main()
{ios::sync_with_stdio(false);cin>>n>>m;int u,v;for(int i=1;i<=m;++i){cin>>u>>v;G[u][v]=1;}Flody();int ans=0;for(int i=1;i<=n;++i)for(int j=i+1;j<=n;++j)if(G[i][j]&&G[j][i]) ++ans;cout<<ans<<endl;return 0;
}void Flody()
{for(int k=1;k<=n;++k)for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)if(G[i][k]&&G[k][j]) G[i][j]=1;
}
G-路径
https://ac.nowcoder.com/acm/contest/558/G
思路:树形dp,输入u,v,w的v我一直默认为根节点,结果坑了我无数遍,一直想不通哪里错了。。。
M1[u],M2[u]分别记录以u为树节点的边数分别为奇数和偶数的最大价值
ans=max{M1[u]+M2[v]+w,M2[u]+M1[v]+w};
Code:
#include<iostream>
#include<vector>
using namespace std;
typedef long long LL;
typedef pair<int,LL> pr; const int MAX_N=1e5+5;
int n;
LL ans;
LL M1[MAX_N],M2[MAX_N];
vector<pr> e[MAX_N];void DFS(int u,int pre);
int main()
{ios::sync_with_stdio(false);cin>>n;int u,v,w;for(int i=1;i<n;++i){//Warning: v点不一定为子节点cin>>u>>v>>w;e[u].push_back({v,w});e[v].push_back({u,w});}DFS(1,0);cout<<ans<<endl;return 0;
}void DFS(int u,int pre)
{M1[u]=-1e16; M2[u]=0;int v,w;for(auto c:e[u])if(c.first!=pre){v=c.first; w=c.second;DFS(v,u);ans=max(ans,M1[u]+M2[v]+w);ans=max(ans,M2[u]+M1[v]+w);M1[u]=max(M1[u],M2[v]+w);M2[u]=max(M2[u],M1[v]+w);}
}
H-分离
https://ac.nowcoder.com/acm/contest/558/H
思路:签到题。
Code:
#include<iostream>
#include<map>
using namespace std;
typedef long long LL;int n,m;int main()
{ios::sync_with_stdio(false);cin>>n;string str,ss;for(int i=0;i<n;++i){cin>>str;m=str.length();ss="";for(int i=0;i<m;i+=2)ss+=str[i];cout<<ss<<endl;}return 0;
}
I-选择
https://ac.nowcoder.com/acm/contest/558/I
思路:简单DP,对当前x有选和不选则,很明显dp[i]=max(dp[i-1],dp[i-2]+x);
Code:
#include<iostream>
#include<cstring>
using namespace std;const int MAX_N=105;
int n,T;
int dp[MAX_N];int main()
{ios::sync_with_stdio(false);cin>>T;while(T--){memset(dp,0,sizeof(dp));cin>>n;for(int i=2,x;i<=n+1;++i){cin>>x;dp[i]=max(dp[i-1],dp[i-2]+x);}cout<<dp[n+1]<<endl;}return 0;
}
J-相聚
https://ac.nowcoder.com/acm/contest/558/J
思路:基础的DFS
Code:
#include<iostream>
#include<cstring>
using namespace std;
typedef long long LL;const int MAX_N=1e2+5;
const int MAX_M=1e2+5;
const int f[][2]={-1,0, 1,0, 0,-1, 0,1};
int n,m,T;
char G[MAX_N][MAX_M];
int boo[MAX_N][MAX_M];void DFS(int x,int y);
int main()
{ios::sync_with_stdio(false);cin>>T;while(T--){memset(boo,0,sizeof(boo));cin>>n>>m;for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)cin>>G[i][j];int ans=0; for(int i=1;i<=n;++i)for(int j=1;j<=m;++j) if(G[i][j]=='1'&&!boo[i][j]){DFS(i,j); ++ans;}cout<<ans<<endl;}return 0;
}void DFS(int x,int y)
{int xi,yi;for(int i=0;i<4;++i){xi=x+f[i][0]; yi=y+f[i][1];if(xi>=1&&xi<=n&&yi>=1&&yi<=m&&G[xi][yi]=='1'&&!boo[xi][yi]){boo[xi][yi]=true;DFS(xi,yi);}}
}
桂林电子科技大学第三届ACM程序设计竞赛-题解相关推荐
- 重复 桂林电子科技大学第三届ACM程序设计竞赛
题目链接:https://ac.nowcoder.com/acm/contest/558/B import java.util.HashSet; import java.util.Scanner;pu ...
- 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)...
链接:https://ac.nowcoder.com/acm/contest/558/D 来源:牛客网 寻找 小猫在研究树. 小猫在研究树上的距离. 给定一棵N个点的树,每条边边权为1. Q次询问,每 ...
- c语言实验答案周信东第三章,桂林电子科技大学C语言程序设计习题答案周信东实验顺序结构与逻辑运算.pdf...
桂林电子科技大学C语言程序设计习题答案周信东实验顺序结构与逻辑运算.pdf 成 绩 良 评 语 继 续 努 力 . 批 改 时 间 2013-11-16 105155 批 改 老 师 实 验 2 顺 ...
- 桂林电子科技大学C语言大作业,桂林电子科技大学c语言程序设计习题集及答案qvzaewzm.doc...
桂林电子科技大学c语言程序设计习题集及答案qvzaewzm 一 单项选择题(每题2分,共44分) 1 以下叙述正确的是__C_. A C程序基本组成单位是语句 B C程序每一行只能写一个语句 C 简单 ...
- c语言作业答案运行成功图片,桂林电子科技大学 C语言 程序设计 习题 答案(周信东) 实验1 C程序的运行环境和最简单的C程序设计...
成绩:优 评语:做的很不错,加油. 批改时间:2013-11-2 11:52:54 批改老师: 实验1 C程序的运行环境和最简单的C程序设计 学号: 姓名: 实验日期:2013-10-20 1. 实验 ...
- c语言周信东实验答案,桂林电子科技大学-C语言-程序设计-习题-答案(周信东)-实验4--数-组...
实验实验 4 数数 组组 姓名 学号 实验日期 2013 11 17 1 实验目的和要求实验目的和要求 1 掌握一维数组与二维数组的定义 使用及初始化方法 2 学习数组作为函数参数的用法 3 掌握字符 ...
- 非常可乐(杭州电子科技大学第四届大学生程序设计竞赛)(九度2013年教程87题)
题目描述:大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多 ...
- 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解
华南师大 2017 年 ACM 程序设计竞赛新生初赛题解 华南师范大学第很多届 ACM 程序设计竞赛新生赛(初赛)在 2017 年 11 月 20 日 - 27 日成功举行,共有 146 名同学有效参 ...
- 2020 年 “联想杯”全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛题解
2020 年 "联想杯"全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛题解 萌新又来写题解啦 原题链接 (不是按照题号顺序来的QWQ) L. Lottery Ticke ...
最新文章
- 江苏c语言二级试题及答案,江苏省计算机二级C语言试题及答案.doc
- 团队作业8——测试与发布(Beta阶段)
- DM6467之视频采集(Linux)下MMAP
- ASP.NET Core开发-Docker部署运行
- [JEEWX问题修复] JeeWX开源版2.3几处代码修改。
- 将Windows文件挂在到Linux上
- JSPServlet精华笔记
- MakeGenericMethod Reflection 反射 ObjectToXmlT Generic XmlSerializer
- 无人机会飞丢及编程上的改进思路
- word排版教程-----------技巧
- 微软的APT服务器探针产品,原子探针断层扫描| APT | EAG实验室
- 下行文格式图片_通知的格式及范文图片_通知格式 通知的格式及范文
- matlab高斯光束加上随机相位,随机调制光束的传输特性
- PTX-NPs 纳米粒子修饰紫杉醇/与桦木酸PEG/邻硝基苯丙酸紫杉醇偶联物的制备
- 如何让IIS支持php网页
- Qt中Q_NULLPTR的作用
- 区块链扫盲之7,区块链与以太坊
- android webview 拦截响应,android WebView拦截请求详解
- PySide2中使用QLabel的setPixmap方法显示图片,部分图片无法显示
- 大学物理简明教程全书思维导图