ch8
紫书第8章
蹲坑看手机
已搬家
展开
-
UVA1149 Bin Packing(贪心)
本题vjudge链接题意:给你n个物品,每个物品的重量为wiw_iwi,你有容量为w的背包,每个背包最多只能装两件物品,问你最少要多少背包来装贪心就好了,贪心策略:将物品按重量排序,如果最重和最轻的物品一起不超过w就放一起,然后就让次重和次轻的放一起;否则重的单独放在一个背包,然后让次重的背包和最轻的一起,以此循环代码如下#include <cstdio>#include <cstring>#include <algorithm>using name原创 2020-08-21 21:40:01 · 136 阅读 · 0 评论 -
UVA11572 Unique Snowflakes(思维 )
本vjudge链接题意:给你一个长度为n(n≤1000000)n(n \le 1000000)n(n≤1000000)的数组,问你最长有不重复数字的连续子序列有多长用set和map的速度都差不多,set记录是否重复,map记录当前数字在此之前最近出现的位置,如果没有就是-1如果嫌set和map慢的话直接用unordered_set或者unordered_map这里用了上次偶遇了一种很牛逼很简洁的hash方式后就喜欢上这个hash,跑进了100ms代码如下#include <cstdio原创 2020-08-21 21:40:23 · 82 阅读 · 0 评论 -
UVA11054 Wine trading in Gergovia(思维)
本vjudge链接题意:有n个村庄,每个村庄都有对酒的需求,正数代表要送出多少酒,负数代表需要多少酒,把k单位的酒运到相邻的村庄要k单位的体力,让你计算最小需要的体力对于第一个村庄,他的需求量x无论正负,都需要右边的村庄搬过来或者搬过去右边的村庄,然后把多余的需求继承到下一个村庄,和紫书上讲的思想差不多代码如下#include <cstdio>#include <cstring>#include <algorithm>#include <cmath原创 2020-08-21 21:39:22 · 83 阅读 · 0 评论 -
UVA120 Stacks of Flapjacks(思维)
title: “UVA120”date: 2020-08-17T11:16:52+08:00draft: truecategories: [“紫书刷题录-ch8”]tags: [“题解”, “思维”]description: “description.”本题vjudge链接题意:给你一个序列,每次选一个数k,从序列的后往前数第k个数然后把它及它之前时数都翻转一下,问你一种选法使得序列从小到大排好序有点像选择排序,不过为了不影响后面的,应该先把排好最大的数,如果已经就位就排第二大的数,具体.原创 2020-08-17 20:43:45 · 100 阅读 · 0 评论 -
UVA1605 Building for UN(思维)
title: “UVA1605”date: 2020-08-17T11:43:31+08:00draft: truecategories: [“紫书刷题录-ch8”]tags: [“题解”, “思维”]description: “description.”本题vjudge链接题意:有一栋楼,有n(n≤50)n(n \le 50)n(n≤50)个国家要开会,每个国家至少分配一个位置,让你输出一种方案,H层,每层W行L列,使得任意两个国家要能相邻,层数也算相邻按紫书说的构造一种解出来,只需要.原创 2020-08-17 20:41:58 · 112 阅读 · 0 评论 -
UVA1152 4 Values whose Sum is 0(思维 + 哈希)
本题vjudge链接题意:给你4个长度为n(n≤4000)n(n \le 4000)n(n≤4000)的集合,让你在4个集合里分别取a、b、c、d,使得a+b+c+d=0a + b + c + d = 0a+b+c+d=0,问你有多少种取法按紫书说的“中途相遇法”,从象个不同的方向来解决问题,最终“汇集”在一起用哈希记录a+ba + ba+b,然后再计算−c−d-c - d−c−d的哈希个数就好了,用slt提供的unordered_map足够过这题了,跑了6000ms多,a掉了后来看了一位大佬自己原创 2020-08-17 20:40:05 · 118 阅读 · 0 评论