http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124

L Median


Time Limit: 1 Second      Memory Limit: 65536 KB

题意:一个序列有n个数,数值未知,给出m对大小关系,求对于每个数是否可以生成一个序列满足这个这个数为中位数,可以该位置输出1,反之输出0。

思路:考虑二元关系,可以建立有向图,考虑到数据范围很小,可以用floyed传递闭包,对于那些没有确定关系的数,他们的关系可以任意假设,所以只需要保证大(小)于他的元素个数少于n/2即可。感谢题目提供的特判提醒     另外进行特判时,必须在floyed传递闭包之后,因为这个wa了好几发。。。

代码如下:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn=;
int a[maxn][maxn],ma[maxn],mi[maxn];
int main()
{
int T;
cin>>T;
while(T--)
{
memset(a,,sizeof(a));
memset(ma,,sizeof(ma));
memset(mi,,sizeof(mi));
int n,m,flag=;
scanf("%d %d",&n,&m);
for (int i=; i<=m; i++)
{
int u,v;
scanf("%d %d",&u,&v);
if (u==v) flag=;
a[u][v]=;
}
for (int k=; k<=n; k++)
{
for (int i=; i<=n; i++)
{
for (int j=; j<=n; j++)
{
a[i][j]=a[i][j]||(a[i][k]&&a[k][j]);
}
}
}
for (int i=; i<=n; i++)
{
for (int j=; j<=n; j++)
{
if (a[i][j]&&a[j][i])
{
flag=;
break;
}
}
if (flag) break;
}
if (flag)
{
for (int i=; i<=n; i++)
putchar();
putchar();
continue ;
}
for (int i=; i<=n;i++)
{
for (int j=; j<=n; j++)
{
if (a[i][j])
ma[i]++,mi[j]++;
}
}
for (int i=; i<=n; i++)
{
if (ma[i]<=n/ && mi[i]<=n/)
putchar();
else putchar();
}
putchar();
}
return ;
}

5.17 补充 翻看ppt时,发现传递闭包那个题还可以bitset优化 改成    a[i][j]|=(a[i][k]&&a[k][j]);

优化后50ms-》30ms

F Tokens on the Segments


Time Limit: 1 Second      Memory Limit: 65536 KB

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4120

题意:给出n个线段(包括长度为0的点线段),这些线段都是平行于x轴的,对于每个x坐标只可以放一个硬币到任意线段上,求最多可以让几个线段放上硬币。

思路:

大致就是贪心+优先队列。

贪心思想就是,对于越短的线段越难放,所以同一个x坐标对应有多条线段时,尽量选短的,然后从x最小的开始放吧。

代买如下:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct node
{
int s,e;
bool friend operator < (node a,node b)
{
if (a.s!=b.s)
return a.s>b.s;
return a.e>b.e;
}
}node;
int main()
{
int T;
cin>>T;
while(T--)
{
priority_queue <node> Q;
int n,ma=-,ans=;
scanf("%d",&n);
for (int i=; i<=n; i++)
{
node a;
scanf("%d%d",&a.s,&a.e);
Q.push(a);
}
while(!Q.empty())
{
node cur=Q.top();
Q.pop();
if (cur.s<=ma && cur.s+<=cur.e)
{
node t=cur;
t.s++;
Q.push(t);
continue ;
}
if (cur.s>ma)
{
ans++;
ma=max(ma,cur.s);
}
}
printf("%d\n",ans);
}
return ;
}

第十届山东省acm省赛补题(2)的更多相关文章

  1. 第十届山东省acm省赛补题(1)

    今天第一场个人训练赛的题目有点恐怖啊,我看了半个小时多硬是一道都不会写.我干脆就直接补题去了.... 先补的都是简单题,难题等我这周末慢慢来吧... A Calandar Time Limit: 1 ...

  2. 第七届山东省ACM省赛

    激动人心的省赛终于结束了…平静下来再回头看真的感觉一波三折…先是赛前毫无预兆的查出突发性耳聋…伴随而来的就是左耳听力下降.轻微耳鸣.极个别情况下的头晕…不过这都还好,毕竟药物可以恢复…热身赛只过了一道 ...

  3. 2018年第九届山东省ACM省赛总结

    去年打完区域赛之后,面对着两个队友都去找实习的情况,我自己对今年省赛还是有点慌的.不只一次的像我的队友说明自己很慌,但是老曹跟会长都说:“没事,慌啥!”前几场训练赛因为老曹跟秋洁有面试有时候只能一个人 ...

  4. 哈尔滨工程大学ACM预热赛 补题

    链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...

  5. 2018山东省ACM省赛G题-Game

    Alice and Bob are playing a stone game. There are n piles of stones. In each turn, a player can remo ...

  6. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  7. 2019山东省ACM省赛菜鸡的赛后总结

    省赛总结 2019-05-13 21:27:40 虽然第一次就死的这么难看,但是的确发现了很多问题,我想这是未来我和我的队友要解决的,而不是去难过,去感慨自己是有多菜.在大一训练结束马上参加暑假集训的 ...

  8. 2017河工大校赛补题CGH and 赛后小结

    网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...

  9. “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities

    题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...

随机推荐

  1. 认识 android-job

    简评: Android 实现后台任务的最佳实践. 对于现在的应用来说,在应用生命周期之外运行一些后台任务可以说已经是一项必不可少的需求了.这些任务可能是在某个时间点提醒用户什么事情或同步本地数据到服务 ...

  2. openstack基础架构

    申明:本文主要观点引用自cloudman:http://blog.51cto.com/cloudman,感谢cloudman的分享. OpenStack主要是通过Nova,Neutron,Glance ...

  3. 转(HBuilder 打包流程)

    1.运行HBuilder---百度搜索HBuilder,官网下载安装包,解压,运行HBuilder.exe.注册账号,并登陆 2.新建app---在左边右键,选择新建APP,或者,点击中间的新建app ...

  4. P1058 立体图题解

    小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m \times nm×n的矩形区域,上面有m \times ...

  5. Python 3标准库第一天讲解总结

    一.很多知识自己没有理解透: 二.课件准备不足: 三.第一次讲解有点紧张: 四.口才也不是很好,很多有断片的情况: 五.SB式的坚持:

  6. vue作业2

    """ 2.现有以下成绩单数据 scores = [ { name: 'Bob', math: 97, chinese: 89, english: 67 }, { nam ...

  7. 实验 5 Spark SQL 编程初级实践

    实验 5  Spark SQL 编程初级实践    参考厦门大学林子雨 1. Spark SQL 基本操作 将下列 json 数据复制到你的 ubuntu 系统/usr/local/spark 下,并 ...

  8. linux 中统计目录/文件数量

    1.查询目录/文件的数量(包括子目录下的文件) [root@small king]# ls -lR|grep "^-"|wc -l 4 注:R代表子目录."^d" ...

  9. MySQL的视图和索引

    MySQL的视图 简单来说MySQL的视图就是对SELECT 命令的定义的一个快捷键,我们查询时会用到非常复杂的SELECT语句,而这个语句我们以后还会经常用到,我们可以经这个语句生产视图.视图是一个 ...

  10. Java+超大文件上传

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...