[vijos P1023] Victoria的舞会3】的更多相关文章

这… 本来想学习一下Tarjan算法的,没想到码都码好了发现这题不是求强连通分量而是简单的连通分量…图论基础都还给老师了啊啊啊!最后深搜通通解决! v标记是否被访问过,scc标记每个的祖先(本来想写Tarjan的才弄出这么奇葩个数组名字),w用于最后的统计. program vijos_p1023; ..,..] of longint; v,w:..] of boolean; n,m,t,i,ans,top:longint; low,s,scc:..] of longint; procedure…
[Vijos1022]]Victoria的舞会2 Description Victoria是一位颇有成就的艺术家,他因油画作品<我爱北京天安门>闻名于世界.现在,他为了报答帮助他的同行们,准备开一个舞会.  Victoria准备邀请n个已经确定的人,可是问题来了:  这n个人每一个人都有一个小花名册,名册里面写着他所愿意交流的人的名字.比如说在A的人名单里写了B,那么表示A愿意与B交流:但是B的名单里不见的有A,也就是说B不见的想与A交流.但是如果A愿意与B交流,B愿意与C交流,那么A一定愿意…
链接:Click Me! P1023Victoria的舞会3 Accepted 标签:Victoria的舞会[显示标签] 描写叙述 Victoria是一位颇有成就的艺术家,他因油画作品<我爱北京天安门>闻名于世界. 如今.他为了报答帮助他的同行们,准备开一个舞会. Victoria准备邀请n个已经确定的人,但是问题来了: 这n个人每个人都有一个小花名冊.名冊里面写着他可以通知到的人的名字.比方说在A的人名单里写了B,那么表示A可以通知到B:可是B的名单里不见的有A,也就是说B不见得通知到A.…
做完Victoria的舞会3,挑了vijos里强连通分量里面难度值最低的题目,也就是这道.先把第一小问做了,纯Tarjan,只是我学的时候的标程是用邻接表的,这题数据小于是用了邻接矩阵,两者之间的切换花了点时间,我天真地以为i<j等价于i的时间戳小于j的了,呵呵,那时候天真地连d数组都没写… 第二问看别人写了是用n次dfs?我多念了几遍题这**不就是明星奶牛么…感觉这两题基本都没什么差别.放假前老师给明星奶牛的评价是,做了这题图论基本复习了一遍…好吧,是啊,我把书翻出来,敲了一遍拓扑排序… 写完…
//P2O5呢? 一.图的存储: 邻接矩阵:邻接表. 邻接矩阵:n*n的[][],[i][j]节点有边记1没边0 缺点 空间复杂度O(n^2) 占用内存较大(我为什么要把这些东西写到这里呢???) 邻接表:把每一个点能直接到达的点存储成链表(反正是一个很奇怪的东西,弄懂了会写了会用了就行)单向边(为啥不叫有向边)和双向边(为啥不叫无向边)的区别是无向边反着存一遍再 const int N=1005; const int M=10050; int point[N],to[M],next[M],cc…
题目链接:https://vijos.org/p/1063 题意:有n(n <= 100)行,每行有2*i-1个可显字符'#'与'-',组成一个倒三角形,问由'-'组成的最大三角形的'-'的个数为多少? 思路:顶点为倒三角,即行列奇偶相同:对于一个顶点可以扩展的最大边长首先需要上面三角为'-',这样只需建立在顶点上一行的左右两个点的最大边长即可: 三角形个数就是边长的平方: ps:开始我想的是从列的角度看轴线的左右两边的min,然后模拟行.真是醉了. #include<iostream>…
题目链接:https://vijos.org/p/1061 n个人选出3*m人,排成m组,每组3人. 站的队形——较矮的2个人站两侧,最高的站中间. 从对称学角度来欣赏,左右两个人的身高越接近,则这一组的“残疾程度”越低. 计算公式为 h=(a-b)^2 (a.b为较矮的2人的身高)现在候选人有n个人,要从他们当中选出3*m个人排舞蹈,要求总体的“残疾程度”最低; input: 第一排为m,n. 第二排n个数字,保证升序排列. 思路:由于和中间高的人无关,但是每次选旁边两个的时候,会由于没有比这…
题目链接:https://vijos.org/p/1062 题意:输入n(n <= 1500)个女生左边有多少个男生.每个女生都和她左边最近的男生跳舞. 输出每个女生到可以与之跳舞的男生之间有几个男生;(包括跳舞的男生) input 64 5 6 6 6 6output 1 1 1 4 5 6 思路:简单的递推即可:并没有用到栈..对于第i个女生,易知当该女生左边男生的数量比前一个女生的数量多时,结果就是1.但是当出现连续的相等时,即表示这些女生之前没有男生,这时我们就需要先前找"可用&q…
题目链接: https://vijos.org/p/1022 题目大意: 给一张N个点的有向图,求有几块强连通分量.(N<=200) 题目思路: [动态规划] n比较小,可以用floyd暴力把每个点能到的都标记上.最后统计的时候把一块里所有的一起标记了,ans+1. // //by coolxxx //#include<bits/stdc++.h> #include<iostream> #include<algorithm> #include<string&…
题目链接: https://vijos.org/p/1062 题目大意: 一群男女站成一排,一男一女配对,女的只找左边第一个空闲的男生,给定前n个女生左边的额男生个数,问前n个女生到男伴之间共有几个男生.(n<=1500 女生左侧男生231内) 题目思路: [模拟] 每个女生只找左边的最靠近的闲置男生,所以每当女生左边的男生数变化的时候就说明队伍里加入了新的男生,而这些男生只会影响右侧的女生. 所以我一开始想到,把男生分成好多群,加入一个女生完把最靠近她的男生群最右的男生配对给这个女生,然后该男…