https://loj.ac/problem/2350 比较简单的题,为什么我实现得这么sb? 第一个包其实已经给了提示(第一个包的解法就是在S->T所有最短路径上的所有点到V的最短路的最小值.) 那么我们先把所有最短路径存成新的图,然后dfs每一条路径,然后找到路径上两个点(i,j),构成一条U->i->j->V,把所有这样的路的答案更新即为所求. 然后就是代码实现的问题了,dfs肯定不行,那么考虑开两个数组f[i]和t[i]表示i往后的路径点j中,U->j最小值和j-&g…
https://loj.ac/problem/2351 参考:https://www.cnblogs.com/ivorysi/p/9144676.html 但是参考博客讲解太吓人了,我们换一种通俗易懂的方法讲. 首先肯定是能想到容斥和子集和的,但是很尴尬的是,裸容斥的复杂度是O(2^l)的显然过不去. 我们考虑l特别小,且字符只有三种,话句话讲至少有一个字符个数<=6. 那我们就试图分情况讨论,分成以0,1,?为目标特殊处理. 同时我们: 设数组f[0][i]表示讨论0时i的二进制1集合属于j的…
[JOI2017/2018]美術展 题目大意: 有\(n(n\le5\times10^5)\)个物品,每个物品有两个属性:尺寸\(A_i\)和收益\(B_i\).从中选取一个子集,总收益为\(\sum B_i-\max\{A_i\}-\min\{A_i\}\).求总收益最大值. 思路: 将所有物品按照\(A_i\)排序,\(B_i\)前缀和记作\(S_i\).答案相当于\(\max\{S_i-A_i+A_j-S_{j-1}\}\).维护\(A_j-S_{j-1}\)前缀\(\max\)即可. 源…
题解 首先求一个最短路图出来,最短路图就是这条边在最短路上就保留,否则就不保留,注意最短路图是一个有向图,一条边被保留的条件是 dis(S,u) + val(u,v) = dis(v,T)我们需要求两遍最短路 然后我们发现就相当于在最短路图上走一段,然后走一段非0的部分 我们把旧图保留,在上面连一些边权为0的有向边,从U到V求一遍最短路,由于最短路图是有向的,我们再从V到U求一遍最短路 然而--WA了? 我们发现我们最短路图上下来之后,可能会又走到最短路图上,但是同时选中两条路径是不可能的,我们…
A.HDU6276:Easy h-index Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1181    Accepted Submission(s): 415 Problem Description 比赛题目:http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf The h-index of…
看到"你必须用低于你上次购买它的价格购买它",有没有想到什么?没错,又是LIS,倒过来的LIS,所以我们只要把读入的序列倒过来就可以求LIS了,第一问解决. 首先要厘清的是,对于这一题第二问貌似用\(nlog_{2}n\)的算法不是很好,因为我们需要序列中每一个位置可以接成LIS的长度.再看看数据范围,会发现\(n^2\)完全可做.仔细想一想,不难发现第二问其实也是个\(DP\):若\(f[i]\)表示以\(i\)位置为结尾的LIS的长度,\(c[i]\)表示序列\(1\)~\(i\)…
反正没时间写,先把简要题解(嘴巴A题)都给他写了记录一下. upd:任务倒是完成了,我也自闭了. CST2018 2-1 Meteorites: 乘法版的石子合并,堆 + 高精度. 写起来有点烦貌似. upd:由于内存问题我高精度是动态开点,同时用的是可并堆(比较简单). #include <cstdio> #include <cmath> #include <cstring> using namespace std; typedef double lf; typede…
题解 有意思的一个dp,我们对G计数,发现如果不在同一条对角线上的G肯定不会互相影响,所以我们对于每一条对角线dp dp的方式是枚举这个G以什么方式放,横着还是竖着,还是不放 代码 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <cmath> #include <cstring> #include <ma…
题解 没啥特别好的算法,是个讨论题,由于0 1 ?三类数位中最少的不会超过6 如果1不超过6,那么记录\(f1(S)\)为 \(\sum_{T \subset S} val(T)\)这个可以通过类似FMT的递推式在\(L 2^L\)求出 然后容斥,如果这个数和1的个数差别是偶数就加上否则就减掉 如果0不超过6,记录\(f0(S)\)为 \(\sum_{T \supset S} val(T)\) 然后容斥,如果这个数有偶数个1就加上否则减掉 问号很少的话就是直接枚举计算值了 复杂度\(O(2^{\…
https://www.lydsy.com/JudgeOnline/problem.php?id=4004 https://www.luogu.org/problemnew/show/P3265 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 <= j <= m),每个装备需要花费 ci,现在脸哥想买一些装备,但是脸哥很穷,所以总是盘算着怎样才能花尽量少的钱买尽量多的装备.…
http://www.lydsy.com/JudgeOnline/problem.php?id=1597 https://www.luogu.org/problemnew/show/P2900 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现…
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24387147 [原题] 1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1396  Solved: 480 [Submit][Status] Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽…
去年742,今年72,也算一种小小的进步. 明年前30(笑 1. Drawing Rooted Binary Trees 给定一个树的中序和前序的遍历,要求输出这棵树(包括空格的) #include <iostream>// #include <string.h>// #include <stdio.h>// #include <stdlib.h>// #include <math.h>// #include <string.h>//…
CST2018 3-1-1 Sum (15%) 简单的线段树,单点修改,区间求和. 很简单. CST2018 3-1-2 Max (20%) 高级的线段树. 维护区间最大和,区间和,左边最大和,右边最大和. 单点修改的时候一路吧区间都改了就好了. 求子段最大值也就判断一下左右就好了. 略微复杂. #include <cstdio> using namespace std; ; const int inf = 1e9; int n, m; int a[N]; inline int max(int…
Problem Description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述. n=0表示输入数据的结束,不做处理. Output 对于每个测试实例,输出在第n年的时候母牛的数量. 每个输出占一行. Sample Input 2 4 5 0 Sample Output 2 4 6 Auth…
题目链接 看这道题之前,以为线性基只是支持异或的操作... 那么,我认为这道题体现出了线性基的本质: 就是说如何用最小的一个集合去表示所有出现的装备. 我们假设已经会使用线性基了,那么对于这道题该怎么办呢? 显然,根据贪心的思想,我们先把这些装备按照 \(cost\) 也就是花费从小向大排序. 我们从左往右 \(O(n)\) 扫一遍,如果可以插入线性基就插入然后加上答案的贡献. 如果不能插入,就一定不会造成贡献,这一点是很显然的. 所以,现在的关键问题是如何构建线性基. 其实我认为并没有那么困难…
题目列表:https://loj.ac/problems/search?keyword=JOI+2018+Final T1 寒冬暖炉 贪心 暴力考虑每相邻两个人之间的间隔,从小到大选取即可 #include<iostream> #include<string.h> #include<string> #include<stdio.h> #include<algorithm> #include<math.h> #include<ve…
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_i\) , \(B\) 是已死猎人的 \(w_i\) 的总和 , \(P_i\) 是 \(i\) 当前要被杀死的概率 ... (抄博客咯) 不难有 \(\displaystyle P_i = \frac{w_i}{A-B} \tag{1}\) 如果 不考虑猎人死没死 , 都能被当做目标 qwq (鞭…
题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 , 考虑了并且在独立集中 , 还没考虑 . 转移就很显然了 qwq 然后要优化嘛 , 把其中两个状态合起来 , 也就是分成考虑了和没考虑了的两种 . 其中考虑了的那种 , 只会存在两种状态 , 要么是在独立集内 , 要么就是与独立集联通 , 没有考虑的 绝对不和独立集联通 就行了 . 然后我们枚举…
RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm线段树去了 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; long long ans,dif[N]; int n,m,s,t,t1,t2,t3,rd,lst; in…
代码自己去LOJ看 JOI2013 彩灯 把序列划分成若干极长交替列,那么最优的方案一定是将一个极长交替列翻转使得连续的三个极长交替列合成一个.计算相邻三个极长交替列长度的最大值即可. 搭乘IOI火车 DP:\(f_{i,j}\)表示两个串的起点分别在\(i,j\)位置最长的拼接长度,转移就先放一个'I',再放一个'O'看能够转移到哪些位置. 现代豪宅 把起点.终点和所有有开关的点建两个点分别表示南北和东西方向,\(x\)相同.\(y\)相邻的两个点南北方向连距离的边,\(y\)相同.\(x\)…
题目链接 lueluelue 分析 这鬼题卡了我10发提交,之前做过一道类似的题目:https://rye-catcher.github.io/2018/07/09/luogu%E9%A2%98%E8%A7%A3P2860-USACO%E5%86%97%E6%9D%82%E8%B7%AF%E5%BE%84-%E7%BC%A9%E7%82%B9-%E6%A1%A5/ 危险的边就是桥边,Tarjan求出边双后缩点整个图变成树,树边都是危险的边,我们需要加一条边构成一个新的ecc使危险的边最小 于是一…
前言 图论中联通性相关问题往往会牵扯到无向图的割点与桥或是下一篇博客会讲的强连通分量,强有力的\(Tarjan\)算法能在\(O(n)\)的时间找到割点与桥 定义 若您是第一次了解\(Tarjan\)算法,建议您反复阅读定义,借助图像来理解 桥与割边 对于无向连通图中点集的一个节点\(x\),删去节点\(x\)及其关联的边之后,存在一对不联通的点对\((a,b)\),则称\(x\)是这个无向图的割点 对于无向联通图中边集的一条边\(e\),删去边\(e\)之后,存在一对不联通的点对\((a,b)…
2018年第九届蓝桥杯A组C/C++决赛题解 点击查看视频题解 点击查看2018年蓝桥杯A组C/C++决赛题目(不含答案) 1:三角形面积 画个图,求三角形面积,可以用外接长方形 - 其他多余区域面积 当然网上很多用海伦公式啊什么的都可以的 #include<bits/stdc++.h> using namespace std; double x1 = 2.3; double yy1 = 2.5; double x2 = 6.4,y2 = 3.1; double x3 = 5.1,y3 = 7…
2018年第九届蓝桥杯B组C/C++决赛题解 点击查看2018年蓝桥杯B组C/C++决赛题目(不含答案) 1.换零钞 ok 枚举 设x表示1元钱的个数,y表示2元钱的个数,z表示5元钱的个数 x+210y+5y == 200,求x+y+z的最小值 2.激光样式 ok 思路1:dfs搜索 每个位置两种情况:开激光(在前一个激光没打开的情况下).不开激光 思路2:dp动态规划思想 dp[i] 表示前i个激光灯的方案数 状态转移方程:dp[i] = dp[i-1] + dp[i-2] //当前方案数…
Problem A: pigofzhou的巧克力棒 Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n 段长为 1 的巧克力棒,然后分给妹子们. 但是他妹子之一中的 15zhazhahe 有强迫症.若它每次将一根长为 k 的巧克力棒折成两段长为 a 和 b 的巧克力棒,此时若 a=b,则15zhazhahe会得到一点高兴值. pigofzhou想知…
摘要: 本文是The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛现场赛)的部分解题报告,给出了出题率较高的几道题的题解,希望熟悉区域赛的题型,进而对其他区域赛的准备有借鉴意义. Function and Function 题意 给出x和k,计算gk(x). 解题思路 通过观察发现,g函数经过一定次数的递推一定会在0和1之间变换,所以循环内加判断提前结束递推即可. 易错分析 注意计算f(0)返回的是1的问题,下面的写法避免了这种错误. 代码实现 #…
2018年蓝桥杯A组C/C++决赛题目 2018年蓝桥杯A组C/C++决赛题解     1:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5.1, 7.2) 求该三角形的面积. 注意,要提交的是一个小数形式表示的浮点数. 要求精确到小数后3位,如不足3位,需要补零.     2:阅兵方阵 x国要参加同盟阅兵活动. 主办方要求每个加盟国派出的士兵恰好能组成 2 个方阵. x国发现弱小的 y国派出了130人的队伍,他们的士兵在行进中可以变换…
自己的博客排版,自我感觉略好一点. 先放上题目. 点击查看2018年蓝桥杯B组C/C++决赛题目题解     1.换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. 小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍, 剩下的当然都是5元面额的. 银行的工作人员有点为难, 你能帮助算出: 在满足小明要求的前提下, 最少要换给他多少张钞票吗? (5元,2元,1元面…
摘要 本文主要给出了2018 ACM-ICPC Asia Beijing Regional Contest的部分题解,意即熟悉区域赛题型,保持比赛感觉. Jin Yong’s Wukong Ranking List 题意 输入关系组数n和n组关系,每组关系是s1 > s2,问第一出现矛盾的组,或者没有矛盾就输出0. 解题思路 第一感觉是拓扑排序,未完,又写了一个深搜的传递闭包,1 A,和2018年河南省赛的题很像. 代码 #include <cstdio> #include <ma…