摘要:
题意: 每个点都可以走多次的TSP问题:有n个点(n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 using namespace std; 6 const int N=17; 7 int g[N][N],... 阅读全文
摘要:
题意:给n个坐标。一个坐标(x,y)若有无存在的坐标满足x1=y就会淘汰掉该点。 1 #include 2 #define pii pair 3 #define INF 0x3f7f7f7f 4 #define LL long long 5 using namespace std; 6... 阅读全文
摘要:
题意: 给一个序列,是从1~n共n个的自然数,接下来又m个区间,对于每个区间[a,b],从第a个到第b个从序列中分离出来,翻转后接到尾部。输出最后的序列。思路: 这次添加了Split和Merge两个基本操作,还有个比较困难的翻转操作。翻转操作只需要将需要翻转的序列独立成树,给根加上翻转标记之后再... 阅读全文
摘要:
题意:一家宠物收养所负责处理领养者与遗弃宠物业务,有人来领宠物,则领一只最理想的。若没有宠物了,领养者们就得等到宠物来,宠物一来立刻送给其中一个等待者。如果有两个理想的选择,则选择那个值较小的。收养所时刻只存在人or宠物or没有存在任何!思路: 这题主要是树中可能存在人或者宠物,但两者不可能同时存... 阅读全文
摘要:
题意: 作为一名出纳员,我的任务之一便是统计每位员工的工资。但是我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。 工资的频繁调整很让员工反感,尤其是集体扣除工资的时候,一旦某位员工发现自己的工资... 阅读全文
摘要:
题意:给一棵n个节点的树(无向边),有q个询问,每个询问有一个值s,问有多少点对(u,v)的xor和为s? 注意:(u,v)和(v,u)只算一次。而且u=v也是合法的。思路:任意点对之间的路径肯定经过LCA的,但是如果如果知道某个点t到根的路径xor和为e,那么就能够得知 x^e=s中的x应该是多少... 阅读全文
摘要:
题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no。插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可。思路:特殊的情况就是s和t的最长相同字符的前缀不等长,则肯定插不进去,如s="aab",而t="aaab"。还有就是,如果第一个字符就不相... 阅读全文
摘要:
题意:有n种商品,每种商品中有a个糖果,如果买这种商品就送多b个糖果,只有第一次买的时候才送。现在有m元,最多能买多少糖果?思路:第一次买一种商品时有送糖果,对这一次进行一次01背包,也就是只能买一次。然后对这种商品来一次完全背包,此时不送糖果,也可以多买。 1 #include 2 #defin... 阅读全文
摘要:
题意:给出一个公司每一天的营业额,求每天的最小波动值之和。该天的最小波动值= min { 绝对值| 该天以前某一天的营业额-该天的营业额 | }。第一天的最小波动值就是其自己。思路:Splay伸展树的入门题,仅有splay,insert,rotate这三个主要的函数而已。 将一个数字(营业额)插入... 阅读全文
摘要:
题意:给一个n*m的矩阵,每个格子中有一个数字,每个格子仅可以走一次,问从(1,1)走到(n,m) 的路径点权之和。思路: 想了挺久,就是有个问题不能短时间证明,所以不敢下手。 显然只要n和m其中一个是奇数,逐行/列绕就可以到达终点,可是恰好都是偶数呢?由于绕不到,那至少得舍弃1个,但是弃哪个比... 阅读全文