摘要:
n,m然后给出n个数让你求所有存在的区间[l,r],使得a[l]~a[r]的和为m并且按l的大小顺序输出对应区间。如果不存在和为m的区间段,则输出a[l]~a[r]-m最小的区间段方案。 如果两层for循环l和r的话,会超时,实际上for循环一遍即可。 #include <iostream> #in 阅读全文
摘要:
给n,m以及n个硬币 问,是否存在两个硬币面值v1+v2=m 因为面值不会超过500,所以实际上最多500个不同的硬币而已 #include <iostream> #include <cstdio> #include <algorithm> #include <string.h> using nam 阅读全文
摘要:
一开始是建立了course[2501][40001]数组,存储每节课的学生编号然后for循环两层输出,但这样复杂度为O(2500*40000),也很明显导致最后时间超时后来发现最多40000学生,每个学生最多选20门课,那么总共也就40000*20所以直接就存储学生-课程的信息,然后排个序,按照课程 阅读全文
摘要:
一开始以为是最短路,结果是给你一个环,让你求环上两点之间的距离。。。那还做毛线 然而还是得做毛线 #include <iostream> #include <cstdio> #include <algorithm> #include <string.h> #define INF 0x3f3f3f3f 阅读全文
摘要:
将Eva喜欢的颜色按顺序编个优先级, 2 3 1 5 6-> 1 2 3 4 5 然后读取stripe,将Eva不喜欢的先剔除掉,剩下的颜色替换为相应的优先级 2 2 4(去掉) 1 5 5 6 3 1 1 5 6 就变为: 1 1 3 4 4 5 2 3 3 4 5 接下来就是求最长上升子序列LI 阅读全文