Codeforces 1027F. Session in BSU】的更多相关文章

题目直通车:Codeforces 1027F. Session in BSU 思路: 对第一门考试,使用前一个时间,做标记,表示该时间已经用过,并让第一个时间指向第二个时间,表示,若之后的考试时间和当前第一个时间冲突时,可以找到当前第二个时间来代替 对每一门考试,如果前一个时间没有被使用过,直接用前一个时间,否则看前一个时间和后一个时间分别可以指向哪一个时间,假设指向x,y,看x和y的状态和大小,如果x,y都已经使用过,表示无解,否则的话,选择较小的,并更新时间指向的状态 时间的指向状态更新需要…
题目传送门 传送门I 传送门II 传送门III 题目大意 有$n​$门科目有考试,第$i​$门科目有两场考试,时间分别在$a_i, b_i\ \ (a_i < b_i)​$,要求每门科目至少参加一场考试,不能在同一个时间参加两场考试,问最后参加的考试最早的时间是什么. 这几天,我怎么做的都是水题Emm.... 考虑先将$a_i, b_i$离散化. 对于每一门考试,在$a_i, b_i$间连一条无向边. 对于每个连通块,讨论: 如果边数大于点数,显然无解 如果边数等于点数,那么答案必须大于等于点权…
题目链接 \(Description\) 有\(n\)个人都要参加考试,每个人可以在\(ai\)或\(bi\)天考试,同一天不能有两个人考试.求最晚考试的人的时间最早能是多少.无解输出-1. \(Solution\) 把每个人向\(ai,bi\)连边.对于每个连通块单独考虑. 记点数为n,边数为m.可以发现当某一连通块n>m(n=m+1)时,可以有一个点不选(最大的): 当n=m时,所有点都要选:n<m时,无解. 用并查集维护连通,顺便维护最大.次大值.当第一次出现环时,即n=m:第二次出现就…
[题目链接] http://codeforces.com/contest/1027/problem/F [算法] 二分图匹配 [代码] #include<bits/stdc++.h> #pragma GOC optimize("Ofast") using namespace std; ; struct edge { int to,nxt; } e[MAXN << ]; int n,q,len,ans,tot; ],match[MAXN << ],he…
F. Session in BSU https://codeforces.com/contest/1027/problem/F 题意: n场考试,每场可以安排在第ai天或者第bi天,问n场考完最少需要多少天. 分析: 将所有的a与b连边,一条边相当于一场考试,一个点相当于一个考试时间,每条边需要找一个点. 那么在一个联通块中,边数>点数,无解(这些考试都只能在这个联通块内的点考). 如果边数=点数,那么相当于出现了环,每条边和一个点匹配,即n场考试,n个考试时间,所以这个联通块内的答案就是最大的…
题目链接 codeforces1027F. Session in BSU 题解 二分图匹配就fst了....显然是过去的,不过tle test87估计也pp了,好坑 那么对于上面做匹配的这个二分图分情况讨论一下 考虑当前的联通块: 边数大于点数:这样肯定是无解的 边数 = 点数:这是一棵基环树,每个日期都会被用,输出最大值 边数 < 点数:这是一棵树,输出次大值 并查集维护一下联通块 代码 #include<cstdio> #include<cstring> #include…
题意: 有n门考试,每门考试都有两个时间,存在几门考试时间冲突,求考完所有的考试,所用的最后时间的最小值 解析: 对于时间冲突的考试 就是一个联通块 把每个考试看作边,两个时间看作点,那么时间冲突的考试即为一个连通块 对于一个连通块 1.如果边数等于点数 即为一个基环树,那么明显 这个连通块的最后时间为 权值最大的点 2.如果边数小于点数 即为一个树,那么连通块的最后时间为 权值次大的点(画画图) 3.如果边数大于点数 那么就冲突了, 输出-1就好了 离散化一下 #include <bits/s…
题面 传送门 思路 真是一道神奇的题目呢 题目本身可以转化为二分图匹配问题,要求右半部分选择的点的最大编号最小的一组完美匹配 注意到这里左边半部分有一个性质:每个点恰好连出两条边到右半部分 那么我们可以利用这个性质 考虑一个左边的点和它右边联通的两个点,发现这两个点只能选择一个和这个左边的点匹配 那么我们考虑把这个点点匹配的模型转化成点边匹配 我们在同一个左边点连的两个右边点之间连边,那么问题就变成了一个点和一条相邻的边匹配,求完美匹配的问题了 而这个问题,我们显然可以用并查集来很好的解决 考虑…
题意 有 \(n\) 门课程,每门课程可以选择在 \(a_i\) 或者 \(b_i\) 天参加考试,每天最多考一门,问最早什么时候考完所有课程. \(n\leq 10^6\). 分析 类似 [BZOJ4883]棋盘上的守卫 一题. 将每门课程对应的两天连边,如果课程 \(i\) 要在第 \(x\) 天考,则对应边指向 \(x\) . 最后有 \(n\) 天,\(n\) 条有向边,每条边的入度为1,构成了基环树森林. 总时间复杂度为 \(O(nlogn)\) (离散化). 总结:这种 \(A\)…
link 花絮: 这场看起来打得还不错的样子……(别问我是用哪个号打的). 然后听说这题的思想被出了好多次,女生赛也出过,quailty算法,然而当时没反应过来,而且时间不多啦. 题意: 有n个人,每个人有两个时间点可以参加考试,任意两人不能在同一时间点参加考试.问最迟考试的人的考试时间最早是多少? $n\leq 10^6.$ 题解: 离散化,将每人的两个时间点连边.题意可以转化为:给每条边定向满足任意一点入度至多为1,使得每条边指向的点的编号最大值最小. 要满足任意一点入度至多为1,原图必须是…
题意:给出n场考试,每场考试有2天可以通过(第ai与bi天).每天最多参加一场考试,现在要求所有考试全部通过的最小天数 n<=1e6,1<=a[i]<b[i]<1e9 思路:From https://blog.csdn.net/qq_34454069/article/details/81835772 维护块内最大值,次大值,点数,边数 #include<cstdio> #include<cstring> #include<string> #inc…
题意 题目链接 $n$个人,每个人可以在第$a_i$天或第$b_i$,一天最多考一场试,问在最优的情况下,最晚什么时候结束 Sol 自己只能想到暴力匈牙利二分图匹配,然而还是被构造数据卡了.. 标算很神奇. 同样考虑把题目中给出的模型建成二分图,左侧代表每个人,右侧代表每一天的考试 然后我们把右侧每个人能选择的两个点之间连边 这样模型就由二分图转化成了一条链上的问题. 分情况讨论一下: 考虑当前的联通块: 1.边数大于点数:因为每个条边都必须与一个点匹配,因此这样肯定无解 2.边数 = 点数:很…
题目大意:你可以在第$ai$天或者第$bi$天进行第$i$场考试,每天最多进行一场考试,求把所有考试都考完的最早结束时间 由于天数可能很大,需要离散 把问题抽象成一棵树,每个点最多被"分配"一条边,现在要删点 画画图可以发现 如果一个联通块是一棵树,那么可以删去至多一个点 如果一个联通块是一个单环树(n个点n条边),那么一个点都不能删掉 如果一个联通块边数大于点数,会发现无法把每个点只分配一条边,不合法,输出-1 判树还是单环树,求一个联通块内点的度总和/2和点数比较即可 并查集维护一…
题目链接 还缺F和G,至少上橙之后把F补了吧. A - Palindromic Twist 题意:每个字母恰好操作一次,变成其之前或者其之后的一个字母,注意'a'和'z'不互通,求是否可以变成回文串. 题解:居然是不互通?! char a[2005]; void test_case() { int n; scanf("%d%s", &n, a + 1); for(int i = 1; i <= n / 2; ++i) { if(a[i] > a[n - i + 1]…
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的名字叫猛张(orz ztr),而我刚好在 11.4 把这题 A 了.乍一看好像也没啥问题,不过模拟赛时间是 2020.11.3,而我 AC 这道题的时间是 2021.11.4((( 首先看到这样的题我们肯定会想到贪心,具体来说我们 DFS 一遍整棵树,DFS 到一个节点 \(x\) 时,我们考虑用最…
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画出来是一种向外发散的有趣图案. 体现在[题目条件]上就是一个 \(n\) 个点 \(n\) 条边的连通图或保证每一个点的入度 / 出度为 \(1\) (有向图:前者称为外向树,后者称为内向树). 常常会把一些在树上做的 dp 放在基环树上以提高题目难度. 惯用思路是先把以环上的点为根的子树内的信息跑…
<题目链接> 题目大意:给定$n$个任务,其中有$m$个主线任务,然后$n$个任务中,每个任务都有可能有一个list,表示完成这个任务之前必须要完成的任务,然后现在让你找出,完成这$m$个主线任务至少要完成的任务,输出这些任务. 解题分析: 建图的时候注意一下,所有任务向必须要在它之前完成的任务连一条有向边.遍历所有的主线任务,然后用DFS判一下环,注意$vis$状态要设3个,这样才能起到判断冲突的作用. #include <bits/stdc++.h> using namespa…
2018-03-11 http://codeforces.com/contest/946/problem/D D. Timetable time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ivan is a student at Berland State University (BSU). There are n days in…
题目描述 This year Alex has finished school, and now he is a first-year student of Berland State University. For him it was a total surprise that even though he studies programming, he still has to attend physical education lessons. The end of the term i…
传送门:http://codeforces.com/contest/895/problem/A A. Pizza Separation time limit per test1 second memory limit per test256 megabytes Problem Description Students Vasya and Petya are studying at the BSU (Byteland State University). At one of the breaks…
有点菜,只写出了三道.活不多说,上题开干. A. Ropewalkers Polycarp decided to relax on his weekend and visited to the performance of famous ropewalkers: Agafon, Boniface and Konrad. The rope is straight and infinite in both directions. At the beginning of the performance…
Physical Education Lessons CodeForces - 915E This year Alex has finished school, and now he is a first-year student of Berland State University. For him it was a total surprise that even though he studies programming, he still has to attend physical…
链接: https://codeforces.com/contest/1185/problem/C2 题意: The only difference between easy and hard versions is constraints. If you write a solution in Python, then prefer to send it in PyPy to speed up execution time. A session has begun at Beland Stat…
为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购物车系统.(程彦瑞) 为了实现用户移动及pc端的适应,用媒体查询实现了响应式效果(文章最后实现). 程序效果 登录界面: 添加购物车界面(购买数量和总价会在界面动态显示):  可以通过在文本框里输入数字来控制购买数量, 点击删除删除整行,点击清空清所有数据. 不可在文本框里输入小于零或者其他违法字符…
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Core中引用dll,以往我们引用DLL都是直接引用,在Core里这样是不行的,必须基于NuGet添加,或者基于project.json添加,然后保存VS会启动还原类库. 第二就是使用Session的问题,Core里使用Session需要添加Session类库. 添加Session 在你的项目上基于NuG…
       首先说明一下,hibernate的延迟加载特性(lazy).所谓的延迟加载就是当真正需要查询数据时才执行数据加载操作.因为hibernate当中支持实体对象,外键会与实体对象关联起来.如果没有这一特性,当查询某一个含有外键的实体对象时,hibernate会把其他实体对象的数据都查询出来.简单的来说,当你想查询某个对象时,实际上调用了多条查询语句.有了延迟加载特性,就避免了这种情况的发生,当你真正的使用get另外一个实体对象时,才再执行下面一条查询语句.           但有些时…
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.html#mvc 本章Demo:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.网页基础/BMVC5/MVC5Base/Controllers/SessionController.cs 方法有很多,今天主要说不改代码的那两种(状…
参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需要消耗大量的内存,参考上面的方法,当请求并发的时候,内存不断的增加. 在网上找了很多种方法都没有解决.下面贴上主要代码: 1.接口请参考上面文章 using NHibernate; using System; using System.Collections.Generic; using Syste…
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配置nginx,我这里测试分享内容只是起引导作用:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 .…
zookeeper中session意味着一个物理连接,客户端连接服务器成功之后,会发送一个连接型请求,此时就会有session 产生. session由sessionTracker产生的,sessionTracker的实现有SessionTrackerImpl,LocalSessionTracker,LeaderSessionTracker(leader),LearnerSessionTracker(follow and oberser)四种实现.它们的分支由各自的zookeeperServer…