1247 排排站 USACO(查分+hash)】的更多相关文章

/* 暴力查分 n*n */ #include<cstdio> #include<cstring> #include<iostream> #define maxn 100010 using namespace std; ],r[]; int main() { scanf("%d%d",&n,&m); ;i<=n;i++) scanf("%d",&a[i]); ;i<=n;i++) ;j<=…
1247 排排站 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description FJ的N头奶牛有一些共同之处(1 <= N <= 100,000).FJ可以将这N头奶牛通过K种特征来归类(1 <= K <= 30).例如,一些奶牛表现出来的特征1可能是有斑点,特征2可能是较之于PASCAL更喜欢C,等等. FJ发明了一种简明的描述特征的方法——“特征码”,用一个长度为k的二进制串来表示这…
/* 加深一下对查分约束的理解 建图的时候为了保证所有点联通 虚拟一个点 它与所有点相连 权值为0 然后跑SPFA判负环 这题好像要写dfs的SPFA 要不超时 比较懒 改了改重复进队的条件~ */ #include<iostream> #include<cstdio> #include<cstring> #include<queue> #define maxn 40010 using namespace std; int n,m,num,head[maxn…
/* 查分约束. 给出的约束既有>= 又有<= 这时统一化成一种 Sb-Sa>=x 建边 a到b 权值为x Sb-Sa<=y => Sa-Sb>=-y 建边 b到a 权值为-y 然后跑最短路 SPFA 判断到不了终点 判断负环的死循环. */ #include<iostream> #include<cstdio> #include<cstring> #include<queue> #define maxn 20010 us…
/* 数组开大保平安. 查分约束: 输入的时候维护st和end 设每个点取元素di个 维护元素个数前缀和s Sbi-Sai-1>=ci 即:建立一条从ai-1到bi的边 权值为ci 表示ai到bi的最小取元素个数 然后跑st到end的最长路 (建边就已经保证了最优) 最后 dis[end] 即为end的前缀和 即为st到end 符合每一个约束的最小去元素值 同时查分约束也满足性质 Sai-Sai-1>=0 Sai-1-Sai>=-1 */ #include<iostream>…
特别鸣谢这段代码的源作者,我的大佬同学\(MetalkgLZH\).由于我没有做什么工作,这篇随笔基本不含相关技术细节. 再次强调,这个程序的主要部分由\(MetalkgLZH\)完成.技术细节与源码可以在他的官网(貌似正在维护)查看.这个程序与\(MetalkgLZH\).\(MiserWeyte\)(我)开发的所有后续版本遵守\(GPL~V3\)协议. Latest update 2019.10.14: 版本V2.2: 1.添加了密码错误以及网络错误时的提示: 2.成绩输出框可手动修改的bu…
Description 给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值,求从起点1到点N的最小代价.起点的代价是离开起点的边的边权,终点的代价是进入终点的边的边权 N<=100000 M<=200000   Input Output 那个取最大值的操作十分烦人,考虑如何将这个判断去掉. 可以用查分的方式:如果进来的边是小的,那么从大的边出去就要补齐差值. 补齐差值就直接连一条差值为 $d$ 的边即可. 然后跑一个 $Dijkstra$ 即可. #incl…
题意:        给你n个点,然后给你两种情况,P a b c,表明a在b的北边c那么远,V a b 表明a在b的北边(距离最少是1),问你这些条件是否冲突. 思路:       一开始想用带权并查集,先处理P在处理V,想想感觉不对,还是查分约束吧,查分约束处理这个题时间和建图都简单,首先查分约束是根据最短路(或最长路)的不等式关系建图的,给你一个图,跑完最短路对于边<a ,b> 会有dis[b] <= dis[a] + map[a][b]; 则 dis[b] - dis[a] &l…
题目:http://poj.org/problem?id=3274 题目大意:http://www.wikioi.com/problem/1247/ (此题中文版) 分析: 令sum[i][j]表示a[1][j]+a[2][j]+……+a[i][j] 那么要求的就是找到最大的j-i使得sum[j][1]-sum[i][1]==sum[j][2]-sum[i][2]==…… 变形一下可得sum[i][2]-sum[i][1]==sum[j][2]-sum[j][1] sum[i][3]-sum[i…
BZOJ 2330 糖果题解 差分约束系统 + SPFA 题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求.幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多…
实现QQ新帐户申请和老帐户登陆的简化版功能.最大挑战是:据说现在的QQ号码已经有10位数了. 输入格式: 输入首先给出一个正整数NN(\le 10^5≤10​5​​),随后给出NN行指令.每行指令的格式为:"命令符(空格)QQ号码(空格)密码".其中命令符为"N"(代表New)时表示要新申请一个QQ号,后面是新帐户的号码和密码:命令符为"L"(代表Login)时表示是老帐户登陆,后面是登陆信息.QQ号码为一个不超过10位.但大于1000(据说QQ…
USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description Like everyone, cows enjoy variety. Their current fancy is new shapes for pastures. The old rectangular shapes are out of favor; new geom…
不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能. 输入格式: 输入首先给出两个正整数NN(\le 10^5≤10​5​​)和KK(\le 500≤500).其中KK是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于KK公里的航班也按KK公里累积.随后NN行,每行给出一条飞行记录.飞行记录的输入格式为:18位身份证号码(空格)飞…
给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数NN(\le 10^5≤10​5​​),为通话记录条数.随后NN行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔. 输出格式: 在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔.如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数. 输入样例: 4 13005711862 13588625832 135057118…
题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的序列长度为Mi,要想兑换人物模型,首先必须要集够N张卡片,对于这N张卡片,如果他们都有一个相同的子串长度为k,则可以兑换一个等级为k的人物模型.相同的定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串. Sandy的卡片数远远小于要求的N,于是Sue决定在Sandy的生日将自己的卡…
因为题中的操作是区间加法,所以满足前缀相减性. 而每一次查询的时候还是单点查询,所以直接用可持久化线段树维护差分数组,然后查一个前缀和就行了. code: #include <bits/stdc++.h> #define N 200004 #define LL long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,m,q,tot,rt[N]; LL…
链接1275Cashier Employment 题目大意就是说有一些人来应聘一个超级市场的工作,每个人的应聘的起始时间在0~23时之间,而超市在时间i需要R[i]个工作人员,而每个人的工作时间都是8小时,问最少需要多少人使得超市一天24小时满足超市的工作人数的需要. 设工作时间为1~24时,S[i]表示前i个小时所需要的工作人数的最小值,那么结果就可以表示成0为起点,24为终点的最短路.下面是约束不等式: 0<=S[i] - S[i-1]<= t[i]               (1<…
其实盖子已经开发了一个功能更强大的版本,但是那个版本依然基于正方系统,也就是说只要正方系统跪了或者张院士在网站上做点手脚,这个小工具就会失效. 今天给大家的版本虽然功能及其简单.界面极端丑陋,但是通过课程助理的接口,无需通过正方系统,直接获取大家的成绩. 你只要提供你的学号和生日即可查询成绩,简单快速. 绿色程序,需要.net framwork 2.0支持,没有环境的同学可以在这里下载:http://search.microsoft.com/zh-cn/DownloadResults.aspx?…
家庭关系   时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte 总提交: 38            测试通过: 9 描述 给定若干家庭成员之间的关系,判断2个人是否属于同一家庭,即2个人之间均可以通过这些关系直接或者间接联系. 输入 输入数据有多组,每组数据的第一行为一个正整数n(1<=n<=100),表示有100个关系描述,接下来有n行,每行的描述方式为: p1 p2 c 其中p1.p2和c均为一串文本,表示每个人的姓名,p1和p2为c的父…
就根据题目中给的约束条件建图就行了 需要注意的是,我们要做的是最长路,因为需要约束每个点都是大于0 那么可以建一个超级源指向所有点,超级源的dis是1,边长为0 那么这样做最长路就可以了 好了我们这么写完了,之后发现re了,然后改大了点数组发现tle了.... 然后我也不知道怎么改,超级源连接所有点的时候,是for i:=1 to n do 的,这 样建完图之后,再做spfa相当于直接将n-1的点放入队列中,然后我改了下 连接的时候for i:=n downto 1 do 那么相当于将1-n放入…
Burn the Linked Camp Time Limit: 2 Seconds      Memory Limit: 65536 KB It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu Empire, was defeated by Lu Xun, a general of the Wu Empire. The defeat was due to Liu Be…
Yixght is a manager of the company called SzqNetwork(SN). Now she's very worried because she has just received a bad news which denotes that DxtNetwork(DN), the SN's business rival, intents to attack the network of SN. More unfortunately, the origina…
#include<stdio.h> #include<iostream> #include<stack> #include<string.h> using namespace std; #define inf 999999999 #define N 300 struct node { int u,v,w,next; }bian[N*10]; int yong,n,head[N]; void addedge(int u,int v,int w) { bian[…
#include<stdio.h> /* 要善于挖掘隐含条件 dis[v]-dis[u]>=bian[i].w;一个条件(u,v,bian[i].w); dis[i+1]>=dis[i];隐含条件(i,i+1,0); dis[i+1]-dis[i]<=1即dis[i]>=dis[i+1]-1;(i+1,i,-1); >=求最大约束条件,求最长路. <=求最小约束条件,求最短路. */ #include<string.h> #include<…
Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; const int N=500000+3; const int INF=-233333333+2; int head[N],to[N<<1],nex[N<<1],val[N<<1],d[N],inq[N]; queue<int>Q; int cnt,s,t,n; v…
[HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路(多源多汇,可以建树超等源点和终点)★ 2112 HDU Today 根蒂根基最短路★ 1874 通顺工程续 根蒂根基最短路★ 1217 Arbitrage   货币互换 Floyd (或者 Bellman-Ford 判环)★ 1245 Saving James Bond 策画几何+最短路★ 1317…
题目链接:http://codeforces.com/problemset/problem/296/C 题意:给你n.m.k,表示n个数a[i],m个对数的操作,k个对操作的操作.m个操作:数a[l]到a[r]范围内都加上d:k个操作:操作m[l]到操作m[l]范围内都执行一次. 线段树套线段树,但是树状数组好写(区间更新单点查询.本质也是差分),附上学弟差分数组的写法. #include<bits/stdc++.h> #define ll long long using namespace…
好神啊 ~ 打表程序: #include <cstdio> #include <cstring> #include <algorithm> #define N 140000000 #define ll long long #define mod 998244353 #define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w"…
题目 给定⼀个⻓度不超过10000的.仅由英⽂字⺟构成的字符串.请将字符重新调整顺序,按"PATestPATest-."这样的顺序输出,并忽略其它字符.当然,六种字符的个数不⼀定是⼀样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出. 输⼊格式: 输⼊在⼀⾏中给出⼀个⻓度不超过10000的.仅由英⽂字⺟构成的⾮空字符串. 输出格式: 在⼀⾏中按题⽬要求输出排序后的字符串.题⽬保证输出⾮空. 输⼊样例: redlesPayBestPATTopTee…
题意:       给了由n个数组成的一个数列,然后给你各种区间的和是大于ci还是小于ci啥的,最后问你是否冲突. 思路:       差分约束水题,不过wa了两次,原因处理区间问题的细节马虎了,说下建图吧,这个题目给的是大于或者小于,不是大于等于啥的,其实这个好办,直接进行相应的+-1就能添加等于号了,然后进行关系转换 假如输入的是 a b str c b = a + b + 1 //一开始忘记了区间的这个处理方法忘记+1 那么if(str[0] == g) b - a > c b - a >…