【CCCC天梯赛决赛】
cccc的天梯赛决赛,水题一样的水,中档题以上的还是没做出来。补了一下题,觉得其实也不是很难,主要是练的少。
L2-1:红色预警 并查集
我做的时候想不到并查集,想到了也不一定做的出来,都是其实不难。
每次失去一个城市,重新计算过并查集,比较几个根节点,如果根节点增加了那么就是改变了连通性。
#include<cstdio>
#define N 505
#define M 5005
using namespace std;
int n,m,k,g,cnt,newcnt;
int f[N],u[M],v[M];
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
return f[x];
}
void un(int a,int b)
{
int fa=find(a),fb=find(b);
if(fa!=fb)
f[fa]=fb;
}
void solve()
{
f[g]=-;
newcnt=;
for(int i=; i<n; i++)if(f[i]!=-)f[i]=i;
for(int i=; i<m; i++)
if(f[u[i]]!=-&&f[v[i]]!=-)
un(u[i],v[i]);
for(int i=; i<n; i++)if(f[i]==i)
newcnt++;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=; i<n; i++)f[i]=i;
for(int i=; i<m; i++)
{
scanf("%d%d",&u[i],&v[i]);
un(u[i],v[i]);
}
scanf("%d",&k);
for(int i=; i<n; i++)if(f[i]==i)
cnt++;
for(int i=; i<=k; i++)
{
scanf("%d",&g);
solve();
if(cnt<newcnt)printf("Red Alert: City %d is lost!\n",g);
else printf("City %d is lost.\n",g);
cnt=newcnt;
if(k==i&&k==n)printf("Game Over.");
}
}
L2-2列车调度 最长上升子序列 O(nlogn)解法
这题题意是求1到n的一个排列里可以分成最少多少个下降子序列,如果做过导弹拦截那么容易地可以知道问题等价于求最长上升子序列,而且要用O(nlogn)的解法。
s[i]s[i]表示上升子序列的长度为i时最后一个数的最小值。
当i<j时,有s[i]<s[j],因为长度比较长的子序列,它末尾的值也肯定更大。
有了这个性质,就可以用二分查找了。
每次找出s里值小于a[i]的最大下标j,把s[j]更新为a[i]。
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 100005
int n,a[N],s[N],ans=;
int main()
{
scanf("%d",&n);
for(int i=; i<=n; i++)
{
s[i]=0x3f3f3f3f;
scanf("%d",&a[i]);
}
s[]=;
for(int i=; i<=n; i++)
{
int l=,r=i-;
while(l<r){
int m=(l+r)>>;
if(s[m]<=a[i])l=m+;
else r=m;
}
if(s[l]<=a[i]){
s[l+]=min(s[l+],a[i]);
ans=max(ans,l+);
}else{
s[l]=min(s[l],a[i]);
ans=max(ans,l);
}
}
printf("%d",ans);
}
L3-1 是否完全二叉搜索树
完全二叉树的概念:从上到下,每一层从左到右填充树的节点。
题意是给你n个数,从根节点开始每次和节点比较,如果更大,那就插入左子树,更小就插入右子树。
遍历的最后一个数字如果刚好是第n个节点,那就是完全二叉树。
#include<cstring>
#include<cstdio>
using namespace std;
int n,t,k,tree[<<];
void build(int w,int v)
{
if(tree[w]==-)tree[w]=v;
else if(v>tree[w]) build(w<<,v);
else build(w<<|,v);
}
int main()
{
memset(tree,-,sizeof tree);
scanf("%d",&n);
for(int i=; i<n; i++)
{
scanf("%d",&t);
build(,t);
}
k=;
for(int i=; i<=n; k++)
if(tree[k]!=-)
{
printf("%d%c",tree[k],i==n?'\n':' ');
i++;
}
if(k==n+)puts("YES");
else puts("NO");
}
【CCCC天梯赛决赛】的更多相关文章
- 记第一届 CCCC-团体程序设计天梯赛决赛 参赛
其他都没什么,上午报道,下午比赛两个半小时,最后139分 但四我超遗憾的是,最后在做L3-1二叉搜索树,因为看到有辣么多人做出来,可是我没做出来啊 比赛结束后看了看其他两道当场吐血,L3-3直捣黄龙不 ...
- 记cccc天梯赛第三届决赛
首先我很想知道,为什么我没有参加初赛,就可以去决赛,这个究竟有没有初赛,这真是未解之谜. 其次,会长说得不错,菜是原罪.不知道这次的表现能不能把我送去湘潭挑战赛.... 我身边 ...
- 2016年团体程序设计天梯赛-决赛 L2-3. 互评成绩(25)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题就要求你编写这个互评系统的算分模块. ...
- 2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)
根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的Re ...
- 2016年团体程序设计天梯赛-决赛 L1-7. 到底是不是太胖了(10)
据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| < 标准体重x10%).已知市斤 ...
- 2016年团体程序设计天梯赛-决赛 L1-6. 一帮一(15)
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中, ...
- 2016年团体程序设计天梯赛-决赛 L1-5. 是不是太胖了(5)
据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.已知市斤是公斤的两倍.现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……) 输入格式: ...
- 2016年团体程序设计天梯赛-决赛 L1-3. 出租(20)
下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对 ...
- 2016年团体程序设计天梯赛-决赛 L1-2. I Love GPLT(5)
这道超级简单的题目没有任何输入. 你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了. 所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车. #i ...
随机推荐
- jQuery实例
1.$("ul li").fliter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')").addClas ...
- 程序员级别鉴定书(.NET面试问答集锦)
作为一个.NET程序员,应该知道的不仅仅是拖拽一个控件到设计时窗口中.就像一个赛车手,一定要了解他的爱车 – 能做什么不能做什么. 本文参考Scott Hanselman给出的.NET问题列表,整理如 ...
- pullRefresh组件配置
mui.init({ pullRefresh:{ container: '#contanier', indicators:false, up:{ height:200, contentinit: '' ...
- BZOJ 1208: [HNOI2004]宠物收养所
1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7514 Solved: 2982[Submit][Sta ...
- LeetCode 2. Add Two Numbers swift
// // main.swift // leetcode02 // // Created by GuoLa on 16/1/21. // Copyright © 2016年 GuoLa. All ri ...
- NET Core HTTP 管道
ASP.NET Core HTTP 管道中的那些事儿 前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Cor ...
- spring发布和接收定制的事件(spring事件传播)
spring发布和接收定制的事件(spring事件传播) 2012-12-26 20:05 22111人阅读 评论(2) 收藏 举报 分类: 开源技术(如Struts/spring/Hibernat ...
- TRIGGER command denied to user 'root'@'LAPTOP-M7KUFN86' for table 'growtest' | Table 'MyDatabase.tmpIdentity_Invites' doesn't exist
是因为创建表的时候,用户权限不够 NaviCat for Mysql 用这个工具打开MYSQL 在用户 下找到 root@% 这个用户,双击打开 设置服务器权限,最后两个权限勾上就OK 了,需要把MY ...
- HTML5 — 让拖放变的流行起来
先上 Demo,尽量用 chrome,代码可参考 Github. 在 HTML5 出现之前,页面元素的拖放需要监听 mousedown.mouseover 以及 mouseup 等一系列事件,然后改变 ...
- byte[] 转字符串 中文乱码
闲来无事,写了一个UWP的UDP/TCP小Demo,网上找了个网络调试助手,就兴冲冲的开始玩耍 结果“鸡同鸭讲”: 讲英文的时候大家都是abc,hello man!how are you? 讲中文的时 ...