Codeforces 1027F. Session in BSU
题目直通车:Codeforces 1027F. Session in BSU
思路:
对第一门考试,使用前一个时间,做标记,表示该时间已经用过,并让第一个时间指向第二个时间,表示,若之后的考试时间和当前第一个时间冲突时,可以找到当前第二个时间来代替
对每一门考试,如果前一个时间没有被使用过,直接用前一个时间,否则看前一个时间和后一个时间分别可以指向哪一个时间,假设指向x,y,看x和y的状态和大小,如果x,y都已经使用过,表示无解,否则的话,选择较小的,并更新时间指向的状态
时间的指向状态更新需要用 map离散数据并用并查集维护
#include<iostream> #include<cstdio> #include<cmath> #include<queue> #include<vector> #include<string.h> #include<cstring> #include<algorithm> #include<set> #include<map> #include<fstream> #include<cstdlib> #include<ctime> #include<list> #include<climits> #include<bitset> using namespace std; #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define fopen freopen("input.in", "r", stdin);freopen("output.in", "w", stdout); #define left asfdasdasdfasdfsdfasfsdfasfdas1 #define tan asfdasdasdfasdfasfdfasfsdfasfdas typedef long long ll; typedef unsigned int un; const int desll[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; const ll mod=1e9+7; const int maxn=2e6+7; const int maxm=1e6+7; const double eps=1e-4; int m,n; int ar[maxn]; pair<int,int> pa[maxn]; map<int,int> ma; bool wa[maxn]; int f[maxn]; int fin(int x) {return f[x]==x?x:f[x]=fin(f[x]); } int main() {scanf("%d",&n);m=0;for(int i=0;i<n;i++)scanf("%d%d",&pa[i].first,&pa[i].second),ar[m++]=pa[i].first,ar[m++]=pa[i].second;sort(ar,ar+m);m=unique(ar,ar+m)-ar;for(int i=0;i<m;i++){ma[ar[i]]=i;}for(int i=0;i<m;i++)f[i]=i;memset(wa,0,sizeof(wa));int ans=0;for(int i=0;i<n;i++){int a=pa[i].first,b=pa[i].second;if(!wa[ma[a]]){wa[ma[a]]=1;ans=max(ans,a);f[ma[a]]=ma[b];continue;}int x=fin(ma[a]);int y=fin(ma[b]);//分别寻找a,b指向的时间if(wa[x] && wa[y]){printf("-1\n");return 0;}if(wa[x]==false && wa[y]==false){if(ar[x]<ar[y]){f[x]=y;//更新时间指向的状态wa[x]=1;ans=max(ans, ar[x]);}else{f[y]=x;//更新时间指向的状态wa[y]=1;ans=max(ans, ar[y]);}}else if(!wa[x]){wa[x]=1;ans=max(ans, ar[x]);}else{wa[y]=1;ans=max(ans, ar[y]);}f[ma[a]]=y;//更新时间指向的状态}printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/wa007/p/9557601.html
Codeforces 1027F. Session in BSU相关推荐
- 省选专练CF1027F Session in BSU
如果你做过SCOI2010连续攻击游戏 就会一眼发现做法--并查集维护二分图 这个做法: 并查集要特意把祖先放的较大 这样祖先就是这个联通块的最大权 #include<bits/stdc++.h ...
- 2022面试200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring
200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring等等 带图MD在资源https://download.csdn.net/download/m0_47987937/86509 ...
- Codeforces 915 E Physical Education Lessons
题目描述 This year Alex has finished school, and now he is a first-year student of Berland State Univers ...
- session会话拦截ajax,session过期,拦截ajax请求并跳转登录页面
1.方法一 :1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面 public void doFilter(ServletRequest request, ServletR ...
- codeforces:ProblemMset
最近一个月在codeforces上做的题(做个记录) 后面太多了就不把代码一一放出了,只放置了链接,可根据链接找到提交的代码. 最小子矩阵 #include <iostream> #inc ...
- 震惊! 某男子一夜之间竟把codeforces题库刷穿
这就是江湖上失传已久的自动AC机 大概就是爬取codeforces的题目的答案 然后再交上去以达到刷题的目的 注意!这样会给服务器一些没有必要的压力 学术目的 别乱用 注意!这样会给服务器一些没有必要 ...
- Struts2 Cannot create a session after the response has been committed 一个不起眼的错误
严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException: Cannot c ...
- 解决nginx负载均衡的session共享问题
之前有写过ubuntu环境下搭建nginx环境,今天来谈一下nginx session共享问题,查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享服务器有多台,用ngi ...
- 你想了解的Cookie和Session就在这~
目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...
最新文章
- CVPR Oral:我给大家表演一个无中生有|北航商汤耶鲁
- php框架是不是累赘,PHP框架,伤不起啊,伤不起
- CENTOS6.3下zabbix安装部署
- POJ-2480 Longge's problem 积性函数
- 笔记-信息系统安全管理-网络安全防御
- Deep Learning菜鸡篇,我的第一个深度神经网络
- 用C语言实现简单的停车场管理
- JavaScript初阶(二)
- jsp mysql更新表数据库_一个关于JSP更新数据库MySQL中的表的问题!
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
- go lang chrome 爬虫 (MAC 系统)
- 怎么看软件的编写代码
- ubuntu风扇转速控制与系统状态监控
- Java面向对象编程之三大特性
- java实验指导书 eclipse_《Java语言程序设计实验指导书》实验指导书.doc
- S.O. 推出程序员身价计算器,看看自己值多少钱?
- 移动端中的vMin和vMax
- 数据结构与算法实验4——字符串和数组 7-5 病毒变种
- 算法逻辑题-海盗分金币问题
- Android实训-家庭财务管理系统
热门文章
- Collection集合--ArrayList源码读后感总结
- 百度输入法发布AI版本10.0,重磅推出“AI助聊”功能
- 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
- String类中常用的方法
- maven使用小技巧 optional
- Unity5x编辑器的视图二
- 根号三的用计算机怎么表示,计算器根号3怎么打
- 鸿蒙并不是为手机开发而是为物联网,华为确定发布“鸿蒙OS”确定 物联网同样可以搭载...
- Android开发工具:Git,Github,GitBook
- Windoes上安装(升级)虚拟化VMware Workstattion Pro软件、序列码激活软件