第十届山东省acm省赛补题(2)
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)的更多相关文章
- 第十届山东省acm省赛补题(1)
今天第一场个人训练赛的题目有点恐怖啊,我看了半个小时多硬是一道都不会写.我干脆就直接补题去了.... 先补的都是简单题,难题等我这周末慢慢来吧... A Calandar Time Limit: 1 ...
- 第七届山东省ACM省赛
激动人心的省赛终于结束了…平静下来再回头看真的感觉一波三折…先是赛前毫无预兆的查出突发性耳聋…伴随而来的就是左耳听力下降.轻微耳鸣.极个别情况下的头晕…不过这都还好,毕竟药物可以恢复…热身赛只过了一道 ...
- 2018年第九届山东省ACM省赛总结
去年打完区域赛之后,面对着两个队友都去找实习的情况,我自己对今年省赛还是有点慌的.不只一次的像我的队友说明自己很慌,但是老曹跟会长都说:“没事,慌啥!”前几场训练赛因为老曹跟秋洁有面试有时候只能一个人 ...
- 哈尔滨工程大学ACM预热赛 补题
链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...
- 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 ...
- 第十届蓝桥杯省赛JavaB组个人题解
前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...
- 2019山东省ACM省赛菜鸡的赛后总结
省赛总结 2019-05-13 21:27:40 虽然第一次就死的这么难看,但是的确发现了很多问题,我想这是未来我和我的队友要解决的,而不是去难过,去感慨自己是有多菜.在大一训练结束马上参加暑假集训的 ...
- 2017河工大校赛补题CGH and 赛后小结
网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...
- “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities
题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...
随机推荐
- 用jmeter进行接口测试(2)
1.jmeter配置元件之HTTP信息头管理器使用 右击线程组-[添加]-[HTTP信息头管理器] 是打发 Jmeter请求元件之参数化txt
- Web service基础
Web service是Web应用程序 平台是XML+http XML是不同平台和不同编程语言之间的语言,用于编解码数据. http是因特网协议 XML是web service的基础 Web serv ...
- squid之------常用配置及选项
Squid常用命令 1.初始化在squid.conf里配置的cache目录 squid -z 2.对squid.conf排错,即验证squid.conf的语法和配置 squid -k parse 3. ...
- 移动端布局基础viewport
划重点 手机屏幕相对着桌面浏览器小,传统网页的设计在手机上体验糟糕 Apple 在移动版 Safari 中定义了 viewport meta 标签(如果没记错最早提出的话),用于创建一个虚拟窗口(la ...
- 第四篇:存储库之mongodb、redis、mysql
MongoDB的简单操作 一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的 ...
- Linux系统中的硬件问题如何排查?(4)
Linux系统中的硬件问题如何排查?(4) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...
- 第六章 Linux文件与目录管理
http://www.92csz.com/study/linux/6.htm 绝对路径:路径的写法一定由根目录”/”写起 相对路径:路径的写法不是由根目录”/”写起 mkdir 创建一个目录.mkdi ...
- void 运算符和 逗号运算符
一.void 运算符 void 运算符的作用目的是 执行一个表达式,但是不用返回任何值,或者是返回undefined void 本身就有 无效.空的 的意思. void运算符的用法: 1.不加括号的写 ...
- springboot 集成apollo,根据不同环境加载配置
- npm 安装与卸载模块
1. 只卸载模块 由于之前安装过,在 package.json 中的记录仍然存在 npm uninstall lodash 2. --save 参数使用 卸载模块的同时删除在 package.json ...