[洛谷P2763]试题库问题】的更多相关文章

题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. «编程任务: 对于给定的组卷要求,计算满足要求的组卷方案. 输入输出格式 输入格式: 第1行有2个正整数k和n (2 <=k<= 20, k<=n<= 1000) k 表示题库中试题类型总数,n 表示题库中试题总数.第2 行有k 个正整数,第i 个正整数表示要选出的类型i的题数.这k…
题目大意:有 $k$ 种类型和 $n$ 个题目,每个题目会适应部分类型,第$i$个类型需要$s_i$的题,一道题只能满足一种类型,现要求出满足所有类型的题目的方案 题解:看到匹配,想到网络流,源点向试题连一条容量为$1$的边,试题向每个可以的类型连一条容量为$1$的边,类型向汇点连容量为需要的量的边.跑最大流即可,若最大流小于$\sum\limits_{i=1}^k s_i$则输出无解,否则对于每一个类型找到对它有贡献的题目,输出. 卡点:无 C++ Code: #include <cstdio…
题意 $n$道试题,每道题有多种类别属性 抽取$m$道题组成试卷,要求包含指定的类型 输出方案 Sol 又是一道zz网络流 我的构图长这样,$k_i$表示第$i$道试题需要的数量 #include<cstdio> #include<queue> #include<cstring> using namespace std; , INF = 1e9 + ; inline int read() { , f = ; ; c = getchar();} + c - ', c =…
非常舒适的最大流 非常显然的建图方法,然而因为数组开小卡了很长时间 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #include <queue> using namespace std; const int MAXN=2500,MAXM=100005; int head[MAXN],dep[…
传送门 网络流界的一股清流啊……终于没那么变态了…… 考虑一下怎么建图.对于每一个类型,我们从$S$向他连边,容量为它所需的题数,表明它要可以有这么多题,对于每一道题目,我们从它对应的类型向他连边,容量为$1$,表明他可以被对应类型选中,且只能选一次,然后在把每道题目向$T$连容量为$1$的边,表明每一道题目只能被一个类型选中.然后跑一遍最大流,对于每一个类型看一看有哪几条边是有流的,那么对应的点就是这个类型选中的点 还有注意一下……输出格式有点那啥…… //minamoto #include<…
s向所有类别属性连流量为当前类别属性需要的个数的边,所有题目向t连流量为1的边(表示只能选一次),所有属性向含有它的题连容量为1的边.跑一变dinic,结果小于m则无解,否则看每一个类别属性连出去的题目的边是否满流,满流代表这个属性选择这道题 #include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std; const int N=100000…
P2763 试题库问题 dinic 搞个虚拟源点和汇点,瞎建建边就好辣. 偷张图↓↓ 如果没满流就是无解辣 输出方案咋办呢? 枚举每种类型,蓝后枚举它们的边 如果该边被使用了(通过判断反向边的流量),且连接的另一点不是汇点 那么就找到一个被用的题了. #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; inline int Min…
P2763 试题库问题 考虑一个试题要被加入进答案的集合有什么条件? 是某种类型 只算作一次 就这两种且的限制,所以我们用串联的方式连接"类型点"和"作用点". 判断无解就判断容量是否满了.输出方案就输出有流量的边的终点. //@winlere #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<qu…
题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. «编程任务: 对于给定的组卷要求,计算满足要求的组卷方案. 输入输出格式 输入格式: 第1行有2个正整数k和n (2 <=k<= 20, k<=n<= 1000) k 表示题库中试题类型总数,n 表示题库中试题总数.第2 行有k 个正整数,第i 个正整数表示要选出的类型i的题数.这k…
题目链接 6/23 这是网络流23题里我第一个没看题解自己写出来一遍过的.. 这题应该是最简单的模型了吧. 从源点向每个类型连一条流量为这个类型要的题数,再从每个类型向可以属于这个类型的所有试题连一条流量为1的边,最后从所有试题向汇点连一条流量为1的边. 跑最大流就行.判断边有没有流量. // luogu-judger-enable-o2 #include <cstdio> #include <queue> #define INF 2147483647 using namespac…
吐槽一下:蜜汁UKE是什么玩意?! 题目分析: 观察题面,对于给定的组卷要求,计算满足要求的组卷方案,可以发现这是一道明显的有条件的二分图匹配问题,于是考虑建模. 建一个超级源点,一个超级汇点:源点与试题相连,汇点与类型相连. 重点是类型的题数的建模.可以从感性来理解一下,其实这有一点限流的意思,每个类型只要求有这么多的题量,不能超出,于是考虑在类型与汇点相连的时候将容量设为类型的题数,在算最大流的时候将题量限制住,就能满足题面的要求了.(希望大家能明白我的意思 \(QwQ\) ) 最后的图即为…
传送门 解题思路 比较简单的网络流,建图还是比较好想的.让源点向试题连流量为1的边,试题向所属类型连流量为1的边,类型向汇点连流量为需要此类试题的边.直接跑最大流,输出答案时找到那些满流的边所对的点. #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<vector> using namespace std; ; ; const int in…
本题可以用最大流也可以用最大匹配(本质一样),用dinic最大流好建图,但码量大,匈牙利码量小,建图费点劲. 最大流:依旧是设一个源点一个汇点,对于每一个种类,连一条到汇点的边,capacity为需要的量,对于每一个试题,从源点连一条capacity为1的边到他,从他对每一个其所属的编号种类连一条capacity为1的边,求最大流即可,再找出最小割即可 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&…
原题传送门 这题很简单啊 从源点向k类题目分别连流量为所需数量的边 从每道题向汇点连一条流量为1的边(每题只能用1次) 从类型向对应的题目连一条流量为1的边 跑一遍最大流 如果最大流小于所需题目数量,就无解 否则对于每个类型,看每道题是否要选 #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M 80005 #define N 2005 //#define getchar nc using namespace std; inline…
传送门 显然的网络流,源点向所有题目连流量为1的边,表示一题只能用一次,题目向它的所有类型连边,流量设为1,类型向汇点连边流量为题目需要的该类型的数量 然后最大流 如果最大流小于总需要的类型题目数量则无解,否则说明有解 考虑找出方案,显然如果一题到一个类型的边被流了,那么这题就是用来当成该类型来用 枚举所有类型和它的反向边,如果反向边有流量(即正向边被流了),那么输出反向边连接的题目 #include<iostream> #include<cstdio> #include<a…
我写一篇绝对原创的题解,算法原创,求洛谷通过!!!(让更多人看到这篇题解) 绝大多数人肯定认为这道题是一道模拟题 以下为正解 我们来看一下这一道题,其实就是找到左右高点,在模拟. 但是这个是正常人的想法,现在我来将一个非正常人的做法. 算法的名字叫做最小生成树?! 注:虽然这个算法不叫歪解 滑稽 是不是非常的神奇???(我是看到没有人写这种题解才写的,如果有大佬在我之前就已经想到了,那么我也就只能%%%了) 我这里有一道关于这个题目的二维版,召唤传送门:传送 本人不喜欢懒开个人公开赛,所以这个题…
转载自加藤惠. 2020年国际初中生信息学竞赛(ISIJ)上,以优秀成绩拿下第四名年仅初三的张湫阳,成为最夺目的选手之一. 而且虽然是初三的选手,但他取得优异成绩后,不少网友并不感到陌生,纷纷留言: 这不是洛谷上天天爆切神仙题的小哥吗? 没错,和其他ISIJ选手不同,张湫阳之前在网络上就已经小有名气,可以说是洛谷上的"网红". 他的洛谷账号Follow人数刚刚突破一万大关,洛谷的估值排名也常年稳居前五,还有一个粉丝群. 这样的数据放在国内也是妥妥的知识区网红了. ISIJ一个月前,张湫…
洛谷题目传送门 LCT维护子树信息常见套路详见我的总结 闲话 题目摘自WC模拟试题(by Philipsweng),原题目名Wander,"山村游历"是自己搞出来的中文名. 数据自测,如有问题欢迎反馈 对耐心的人来说,这道题是个裸题(当我什么也没说) 题面 题目描述 在一个偏远的小镇上,有一些落后的山村.山村之间通过一些道路来连接.当然有的山村可能不连通. 一年当中会发生很多大事,比如说有人提议要在山村\(i\)与\(j\)之间修建一条道路,也有人觉得山村\(i\)和\(j\)之间的道…
洛谷试炼场-简单数学问题 B--P1045 麦森数 Description 形如2^P−1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果PP是个素数,2^P-1 不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377P=3021377,它有909526位.麦森数有许多重要应用,它与完全数密切相关. 任务:从文件中输入PP(1000<P<31000001000<P<3100000),计算2^P-1 的位数和最后500位数字(用十进制高…
洛谷试炼场-简单数学问题 A--P1088 火星人 Description 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答. 火星人用一种非常简单的方式来表示数字――掰手指.火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,…
Update:原来的洛谷U21715已成坑qwq 已经被某位管理员巨佬放进公共题库啦!又可以多一个AC记录啦! 洛谷题目传送门 其实也可以到这里交啦 思路分析 动态维护树的重心 题目中说到国家的首都会选在某个使得其他城市到它距离之和最小的城市,那不就是树的重心了嘛.树的重心性质真的很好,看看wuhulala巨佬的这篇博客. 网上大多数解法都是启发式合并.利用了以重心为根的子树大小不超过原树的一半,每次合并两颗树的时候,小的往大的上面合并,而且是一个点一个点地link上去,每次link完检查一下这…
洛谷题目传送门 LCT维护子树信息常见套路详见我的总结 闲话 题目摘自WC模拟试题(by Philipsweng),原题目名Wander,"山村游历"是自己搞出来的中文名. 数据自测,如有问题欢迎反馈 对耐心的人来说,这道题是个裸题(当我什么也没说) 题面 题目描述 在一个偏远的小镇上,有一些落后的山村.山村之间通过一些道路来连接.当然有的山村可能不连通. 一年当中会发生很多大事,比如说有人提议要在山村\(i\)与\(j\)之间修建一条道路,也有人觉得山村\(i\)和\(j\)之间的道…
题目链接 不是双倍经验我会去\(debug\)一上午? 一开始我是用的\(map+string\),跑的太慢了,T了4个点. 后来我手写了\(string\),重载了小于号,依然用的\(map\),T了2个点. 然后我加入各种卡常,发现没有用. \(\cdots\) 然后我把手写\(string\)改成字符串哈希,依然用\(map\)存,还是\(T\)了2个点. 然后继续各种优化,没有用. 然后去看\(yyb\)聚聚的题解,原来可以每操作几百次随机\(Splay\)一下来保证树的随机性,只\(T…
题目传送门 转载自https://www.cnblogs.com/fengzhiyuan/articles/7994428.html,转载请注明出处 Treap 简介 Treap 是一种二叉查找树.它的结构同时满足二叉查找树(Tree)与堆(Heap)的性质,因此得名.Treap的原理是为每一个节点赋一个随机值使其满足堆的性质,保证了树高期望 O(log2n) ,从而保证了时间复杂度.  Treap 是一种高效的平衡树算法,在常数大小与代码复杂度上好于 Splay. Treap 的基本操作 现在…
虽然月赛有些爆炸,但我永远资瓷洛谷! 因为去接水,所以迟到了十几分钟,然后洛谷首页就打不开了-- 通过洛谷题库间接打开了比赛,看了看\(TA\),WTF?博弈论?再仔细读了读题,嗯,判断奇偶性,不过要注意一下会爆\(\rm{int}\).\(1min\)不到,打出正解,赶紧跑去提交,woc怎么提交不了?应该是人太多了,我还是先去做\(TB\)吧,过一会在提交. \(TB\)和\(TA\)完全不在一个层次上啊,这题怎么做啊,完全没有思路--我还是先把\(TA\)提交了吧,至少不会爆零.然后还是提交…
题目背景 据说在红雾异变时,博丽灵梦单身前往红魔馆,用十分强硬的手段将事件解决了. 然而当时灵梦在Power达到MAX之前,不具有“上线收点”的能力,所以她想要知道她能收集多少P点,然而这个问题她答不上来,于是她找到了学OI的你. 题目描述 可以把游戏界面理解成一个N行M列的棋盘,有K个格子上有P点,其价值为val(i,j) 初始灵梦可以选择在第一行的任意一个格子出发,每秒她必须下移一格. 灵梦具有一个左右移动的速度T,可以使她每秒向左或右移动至多T格,也可以不移动,并且不能折返.移动可视为瞬间…
试题来源 2011中国国家集训队命题答辩 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 为了满足墨墨的要求,你知道你需要干什么了吗? 输入输出格式 输入格式: 第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数. 第2行N个整数,分别代表初始画笔排中第i支画笔的颜色. 第3行…
问题描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多.如果两名怨气值为c的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c的冲突事件.每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到S城Z市长那里.公务繁忙的Z市长只会去看列表中的第一个事件的…
题库 :洛谷 题号 :2055 题目 :假期的宿舍 link :https://www.luogu.org/problem/P2055 首先明确一下:校内的每个学生都有一张床(只是校内的有) 思路 :分析题目发现是求所有在校学生能否全部有床睡(注意:只需在校学生有床睡,及不回家的:这个床可以是自己的,也可以是朋友的):于是,这道题我们可以把它想象成一个二分图,如样例图: a -> b表示a可以睡b的床(注意:虽然样例中没有2 -> 2的边,但你仔细读题就会发现题目中的原话---) 由于题目里给…
题库:洛谷 题号:3627 题目:抢掠计划 link:https://www.luogu.org/problem/P3627 思路 : 这道题是一道Tarjan + 最长路的题.首先,我们用Tarjan把每个强连通分量缩成一个点,并记录那个强连通分量的点权和(因为当那个人走进一个强连通分量后那个强连通分量中的所有money都会被他拿走(绕一圈不就完了?)),然后我们化点权为边权,再以起点所在的强连通分量跑最长路,最后就能计算出从起点所在的强连通分量到任意一个终点所在的强连通分量的最长距离了(最大…