摘要:
嘟嘟嘟 刚开始因为没看到只能走没有损坏的农场,磨叽了20多分钟……不管了,写题解吧。 首先如果一个点不能到达原点,那么和他相邻的点也不能到达原点,所以刚开始我们把不能走的点和他相邻的点都打上标记,然后跑dfs就行了。 1 #include<cstdio> 2 #include<iostream> 3 阅读全文
摘要:
嘟嘟嘟 某谷的翻译挺迷的,简单来说就是给一个初值c,然后有两个函数f1 = a1 * x / d1 + b1, f2 = a2 * x / d2 + b2.把c分别带进去,所得的结果也递归带进去,这样的到一串数,输出第n小的。 这道题如果都带进去,然后在排序肯定行不通,因为这一串数不是递增的,不能确 阅读全文
摘要:
嘟嘟嘟 直接O(n ^ 2)暴力判断就行了。 对于圆,判断该点和圆心的距离是否小于半径。 然而为啥我这么写编译不过: 1 scanf("%lf%lf%lf%lf", &a[++cnt1].xl, &a[cnt1].yl, &a[cnt1].xr, &a[cnt1].yr); ++cnt1必须拎出来写 阅读全文
摘要:
嘟嘟嘟 首先可以知道,对于在哪个时候攻占一个城市,应该是他的最短到达时间和最早进入时间的最大值(max(d1[i], d2[i]))。 最短到达时间:就是朴素的最短路d1[i]。 最早进入时间:设所有到达有他的结界发生器的城市为j,那么应该是在所有最短时间中取max,作为d2[i]。 于是就可以用d 阅读全文
摘要:
嘟嘟嘟 这道题删完边后是一棵树,那么一定和最小生成树有关啦。 考虑最后的生成树,无论从哪一个点出发,每一条边都会访问两次,而且在看一看样例,会发现走第w条边(u, v)的代价是L[w] * 2 + c[u] + c[v],所以说把每一条边的边权改为这个,然后跑裸的最小生成树就行了。然后答案还要加上出 阅读全文
摘要:
嘟嘟嘟 竟然还能发现这么水的题。就是线段树维护区间亦或嘛~~~~ 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> 6 #include<cstdli 阅读全文
摘要:
嘟嘟嘟 一看n那么小,那一定是状压dp了(表示从没写过,慌)。 首先dp[i][j](i 是一个二进制数,第x位为1代表选了第x头牛),表示 i 这个状态最后一头牛是第 j 头牛时的方案数。 然后当 j 被选上时,即 if(i & (1 << (j - 1)))时,我们在枚举倒数第二头牛p,也是当他 阅读全文
摘要:
嘟嘟嘟 dp。 刚开始我想的是dp[i][j]表示在第 i 棵树上,高度为h能吃到的最多的果子,如此能得到转移方程: dp[i][j] = max(dp[i][j + 1], dp[k][j + derta]) (k = 1~n && k != i)。但因为这样写会导致dp[k][j + derta 阅读全文
摘要:
嘟嘟嘟 这道题我第一眼看出就是RMQ,不过因为细节挺多的调了挺长时间。 st表正常预处理自不必说,主要是有没出现的年份怎么处理。 首先我们考虑false的情况: 1.左右端点年份都已知,且y的降水量小于x或者这中间最大的降水量大于x。 2.左端点年份已知,且中间的最大降水量大于等于左端点降水量。 3 阅读全文
摘要:
嘟嘟嘟 刚开始想这道题的时候确实很蒙,只想到矩形对边做对应的弧长相等,然后想办法凑出相等的弧长。其实正解很简单,不要去想边,应该想对角线,因为根据初中园的知识,这个矩形的对角线是圆的直径,而直径所对的弧是周长的一半,所以只要每局两个指针 i,j,如果这两个的距离是周长一半的话,就cnt++,所以最终 阅读全文