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. [工具] BurpSuite--Intruder功能

    BurpSuite--Intruder功能 0x00 配置说明 intruder是进行爆破的,基本流程是标注请求的爆破参数,然后配置字段,选择爆破方式进行爆破,下面来记录下工具的使用 选中intrud ...

  2. 【洛谷P3338】力

    题目大意:求 \[ E_{j}=\sum_{i<j} \frac{q_{i}}{(i-j)^{2}}-\sum_{i>j} \frac{q_{i}}{(i-j)^{2}} \] 题解:可以 ...

  3. vue项目中引入vant 使用rem布局问题

    postcss.config.js const autoprefixer = require('autoprefixer') const pxtorem = require('postcss-pxto ...

  4. Oracal数据库安装配置教程

    官网注册账号登录 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows- ...

  5. ESP8266-模拟输出(PWM)

    PWM(Pulse Width Modulation,脉宽调制),是在保持波的频率不变的同时改变脉宽的技术 首先,我们来理解一下占空比.一个脉冲周期由一个ON周期(VCCC)和一个OFF周期(GND) ...

  6. 一个不错的vue项目

    项目演示: https://www.xiaohuochai.cc 项目地址:https://github.com/littlematch0123/blog-client

  7. 磁盘IO过高时的参考

    主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大的话,是数据库,可以进行读写分离或者分库 ...

  8. 多线程——Java中继承Thread类与实现Runnable接口的区别

    线程我只写过继承Thread类的,后来知道java多线程有三种方式,今天首先比较一下常用的继承Thread类和实现Runnable接口的区别. 按着Ctrl键进入Thread之后,发现Thread类也 ...

  9. 模板_SEG_TREE

    #include<bits/stdc++.h> #define maxn 500005 #define int long long using namespace std; inline ...

  10. Shell中的特殊字符(三)

    一 通配符 [root@192 test]# touch abc [root@192 test]# touch abcd [root@192 test]# touch 012 [root@192 te ...