第十届山东省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 ...
随机推荐
- PHP 优化之php -fpm 进程
一,php-fpm的启动参数 1 2 3 4 5 6 7 8 9 10 11 12 13 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/ ...
- zencart 输出产品特价折扣百分比
通过调用zen_get_products_base_price($products_id)获取原价,zen_get_products_special_price($products_id)获取特价,进 ...
- 机器学习降维--PCA
1.原理和概念 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法. PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征 ...
- pyqt5-表格TableWidGet
from PyQt5.QtWidgets import QApplication,QTableWidget,QWidget,QHeaderView,QPushButton,QTableWidgetIt ...
- HttpClient——ESP8266HTTPClient库
针对Http请求操作的库,ESP8266HTTPClient库不属于ESP8266WiFi库的一部分,所以需要引入 #include <ESP8266HTTPClient.h> HTTP ...
- JVM调优总结(三)——分代垃圾回收详述
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的.因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率. 在Java程序运行的过程中,会产生大量的对象, ...
- 【leetcode】1218. Longest Arithmetic Subsequence of Given Difference
题目如下: Given an integer array arr and an integer difference, return the length of the longest subsequ ...
- Vue组件创建和组件传值
Vue创建组件的方式 使用Vue.Extend()和Vue.component全局注册组件 首先我们定义一个组件并接收 var com1 =Vue.extend({ template:"&l ...
- JSON.parse 测试
第一种 报错 var t = JSON.parse(""); console.log(t); 第二种 正常 var t = JSON.parse('{"AA": ...
- opencv加椒盐噪声
void salt(IplImage *img, int saltNum) { int x,y; int i ; unsigned char *src = NULL; src = (unsigned ...