「日常训练」 Longest Run on a Snowboard (UVA-10285) 题意其实就一条二维的LIS,但是还是做的一愣一愣的,多努力。 考虑dp[i][j]dp[i][j]dp[i][j]为从(i,j)出发的二维LIS的最大值,那么dp[i][j]=max{dp[i−di[k]][j−dj[k]]+1}dp[i][j]=max{dp[i−di[k]][j−dj[k]]+1}dp[i][j]=max\{dp[i-d_i[k]][j-d_j[k]]+1\},取dp值时...
「日常训练」COMMON 约数研究(HYSBZ-1968) 题意与分析感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解。这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做。数学果然不是我擅长的啊,这么简单我都不会。。。 简单说下自己的理解。 从原题出发容易得到的朴素算法容易超时,所以要想到转化问题。原题要求1~n的因数之和,反过来说,就是求1~n中有几个数分别是1、2、…、n的倍数。这个弯...
「暑期训练」「基础DP」免费馅饼(HDU-1176) 题意与分析中文题就不讲题意了。我是真的菜,菜出声。 不妨思考一下,限制了我们决策的有哪些因素?一,所在的位置;二,所在的时间。还有吗?没有了,所以设dp[i][j]dp[i][j]dp[i][j]为第i秒在j处的最大馅饼数,有:dp[i][j]=dp[i][j]=max(dp[i−1][j−1],dp[i−1][j],dp[i−1][j+1])+f[i][j]dp[i][j]=dp[i][j...
「暑期训练」「基础DP」FATE(HDU-2159) 题意与分析学习本题的时候遇到了一定的困难。看了题解才知道这是二重背包。本题的实质是二重完全背包。 二维费用的背包问题是指:对于每件物品,具有两种不同的费用,选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。 设第i件物品的两种代价分别为aiaia_i和bjbjb_j,两种代价可付出的最大值(两种背包容量)分别为VVV和UU...
「暑期训练」「基础DP」 Monkey and Banana (HDU-1069) 题意与分析给定立方体(个数不限),求最多能堆叠(堆叠要求上方的方块严格小于下方方块)的高度。 表面上个数不限,问题是堆叠的要求决定了每个方块最多可以使用三次。然后就是对3n3n3n的方格序列用LIS。 注意:排序和求LIS的标准不同,否则答案会错误。代码#include <iostream>#include <cstring>#include <...
「暑期训练」「基础DP」 Piggy-Bank (HDU-1114) 题意与分析完全背包问题。 算法背包九讲里面都有提到过,我自己再说下对完全背包的理解。 为什么01背包中遍历状态从VVV到000?考虑一下基本方程dp[i][j]=max(dp[i−1][j−w[i]]+v[i],dp[i−1][j])dp[i][j]=max(dp[i−1][j−w[i]]+v[i],dp[i−1][j])dp[i][j]=max(dp[i-1][j-w[i]]+v[i],...
「暑期训练」「基础DP」 Common Subsequence (POJ-1458) 题意与分析很简单:求最长公共子序列。 注意子序列与子串的差别:一个不连续一个连续。一份比较好的参考资料见:https://segmentfault.com/a/1190000002641054状态转移方程是这样的: 设dp[i][j]dp[i][j]dp[i][j]为a串1~i、b串1~j中的最长的公共子序列,则 dp[i][j]={dp[i−1][j−1]+1, &nbs...
「暑期训练」「Brute Force」 Bitonix' Patrol (CFR134D1D) 题意有nnn个站点,排成圆形,每站间距mmm,现从0点出发,提供ttt个油箱,问:拿走若干个油箱可以让出发者无法到达任意一个站点,这样的方案有多少?(出发者可以顺时针走,也可以逆时针走)数据规模分别为:2 ≤ n ≤ 1000,1 ≤ m ≤ 120,1 ≤ t ≤ 100002 ≤ n ≤ 1000,1 ≤ m ≤ 120,1 ≤ t ≤ 100002 ≤ n ≤ 1000, 1 ≤ m ≤...
「暑期训练」「Brute Force」 Multiplication Table (CFR256D2D) 题意给定一矩阵MMM,Mij=ijMij=ijM_{ij}=ij,求第k大值。分析这个题不看题解我是想不到二分的,但是二分当然属于暴力,不爽不要玩;) 实际上,现在做题解的时候,意识到一个有意思的结论:第k大xxx往往都与二分思想有关。我们还会与分治思想再见的。 具体做法:二分第k大值p。求数组中p元素是第几大即可。代码#include <bits/stdc++....
「暑期训练」「Brute Force」 Optimal Point on a Line (Educational Codeforces Round 16, B) 题意You are given n points on a line with their coordinates xixix_i. Find the point x so the sum of distances to the given points is minimal.分析答案是直觉上显然的:输出数组的中位数即可(对于偶数个数的,则是中间靠左)。 这样的结果正确的原因也很显然...
「日常训练」「小专题·图论」Domino Effect(1-5) 题意分析这题几乎就是一条dijkstra的问题。但是,如何考虑倒在中间? 要意识到这题求什么:单源最短路的最大值。那么有没有更大的?倒在中间有可能会使它更大。 但是要注意一个问题:不要把不存在的边(边长为inf)算进去;另外,n=1的情况需要注意。代码// Origin:// Theme: Graph Theory (Basic)// Date: 080618//...
「日常训练」「小专题·图论」 昂贵的聘礼(1-4) 题意分析dijkstra的变形,问题在于把题目的逻辑转化成图。 这个图(V,E)(V,E)(V,E)是这样的:V是各个人(礼物+承诺+探险家),E是花费的金额。如果能够换到,就连一条边。 这样一来,对[lv1−m,lv1][lv1−m,lv1][lv_1-m,lv_1]到[lv1,lv1+m][lv1,lv1+m][lv_1,lv_1+m]的各个区间分别求最短路(m次),即可求出答...
「日常训练」「小专题·图论」 Cow Contest (1-3) 题意分析问题是要看出来这是个floyd闭包问题。我没看出来- - 分析之后补充。代码// Origin:// Theme: Graph Theory (Basic)// Date: 080618// Author: Sam X//#include <bits/stdc++.h>#include <iostream>#include <...
「日常训练」「小专题·图论」 Frogger (1-1) 题意分析变形的dijkstra。 分析题意之后补充。代码// Origin:// Theme: Graph Theory (Basic)// Date: 080518// Author: Sam X//#include &lt;bits/stdc++.h&gt;#include &lt;iostream&gt;#include &lt;utility&gt;#...
「日常训练」「小专题·USACO」 Ski Course Design (1-4) 题目以后补分析mmp这题把我写蠢哭了 我原来的思路是什么呢? 每轮找min/max,然后两个决策:升min/降max 像这样子dfs找最优,然后花式剪枝 但是一想不对啊,这才1-4,哪有那么复杂 网上一看,沃日丢人现眼了 由于数据范围(没错面向数据范围编程),只要穷举min/max,然后对小于大于min/max进行调整,最后找最优方案即可。 贪心+枚举=人生赢家 真实蠢...
「暑期训练」「Brute Force」 Money Transfers (CFR353D2C) 题目分析这个Rnd353真是神仙题层出不穷啊,大力脑筋急转弯- - 不过问题也在我思维江化上。思考任何一种算法都得有一个“锚点”,就是说最笨的方法怎么办。为什么要这么思考,因为这样思考最符合我们的思维规律。然后从这种最笨的方法中找问题、找漏洞、找关键的变量不变量,就能转化出更好的更快的算法。 这题就是这样。最笨的方法是什么?随便从哪个点出发,按照一个方向一个一个抹平差距。可以保证,...
「日常训练」「小专题·USACO」 Wormholes(1-4) 题意之后补充。分析这是一条很好的考察递归(或者说搜索)的题目。它的两个过程(建立初步解,验证)都用到了递归(或者说运用递归可以相当程度的减少代码量)。 具体实现见代码。注意,为了使用std::pair的比较操作符,代码交换了x、y的位置。代码/*ID: samhx1LANG: C++14TASK: wormhole*/#include <bits/stdc...
「暑期训练」「Brute Force」 Restoring Painting (CFR353D2B) 题意给定一定条件,问符合的矩阵有几种。分析见了鬼了,这破题谁加的brute force的标签,素质极差。因为范围是1e5,那你平方(枚举算法)的复杂度必然爆。 然后你就会思考其中奥妙无穷的数学规律(并没有),推出一系列相关的等式。 然后坑爹无穷的来了:边界问题。 不想说了,心累,自己看代码吧。代码#include <bits/stdc++.h>#defi...
「日常训练」「小专题·USACO」 Barn Repair(1-4) 题意之后补。分析这题同样也很精巧。我们不妨思考一下,如果只允许用一块木板,那么要购买多少距离?是整个的距离吗?不是,是从第一个到最后一个(哈哈哈哈哈哈哈)。但是,不包括第一个的“左边”和最后一个的“右边”。只允许用两块的时候发生了什么变化?可以想见,最好的解是将最宽的那个间隔去掉。以此类推。 以这样的思路就可以得到题目的解法。问题在于各种各样的细节(again):样例数据里面给的牛棚...
「暑期训练」「Brute Force」 Far Relative’s Problem (CFR343D2B) 题意之后补分析我哭了,强行增加自己的思考复杂度。。。明明一道尬写的题- -(往区间贪心方向想了 其实完全没必要,注意到只有366天,直接穷举判断即可。代码#include <bits/stdc++.h>#define MP make_pair#define PB push_back#define fi first#define se second#d...
「日常训练」「小专题·USACO」 Broken Necklace(1-2) 题意圆形链条,打断一处可以形成一条链。问在哪个地方开始打断,能够形成最大的连续颜色(白色视作同样的颜色)?分析说起来很高级,但是我们实际上并不需要穷举打断的地方,只需要把串重复三回啊三回。然后从第二个串的左边开始循环找连续颜色的“初始色”(如果是白色,那么左右看看),在初始色的左右找相同。可以看出共有n个初始色的位置,所以算法也就是O(n2)O(n2)O(n^2)的复杂度。然后还有一些...
「日常训练」 Mike and Feet (CFR305D2D) 题意分析这是一道用了单调栈的题目,用的贼好。代码#include &lt;bits/stdc++.h&gt;#define MP make_pair#define PB push_back#define fi first#define se second#define ZERO(x) memset((x), 0, sizeof(x))#define ALL(x)...
「日常训练」 Mike and Frog (CFR305D2C) 题意与分析 (Codeforces 548C)我开始以为是一条数学题,死活不知道怎么做,无奈看题解,才知这是一条暴力,思维江化了- - 题意大概是这样的: 两个东西的初始高度分别为h1,h2h1,h2h_1,h_2,每秒二者的高度分别变化为(x1h1+y1)%m1(x1h1+y1)%m1(x_1h_1+y_1)\%m_1与(x2h2+y2)%m2(x2h2+y2)%m2(x_2h_2+y_...
「日常训练」 Mike and Fun (CFR305D2B) 题意(CodeForces 548B)每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度。分析非常非常简单,但是我当时训练的时候WA了四次。。。无力吐槽了,人间 不值得.jpg代码#include <bits/stdc++.h>#define MP make_pair#define PB push_back#define fi first#...
「日常训练」 Soldier and Traveling (CFR304D2E) 题意 (CodeForces 546E)对一个无向图,给出图的情况与各个节点的人数/目标人数。每个节点的人只可以待在自己的城市或走到与他相邻的节点。 问最后是否有解,输出一可行解(我以为是必须和答案一样,然后本机调了半天死活不一样,交上去结果A了- -)。分析典型的网络流。问题在于建模。如何解决两个节点的人数->目标人数? 考虑到我们始终要和这两个状态打交道,不妨将每个结点拆...
「日常训练」 Soldier and Number Game (CFR304D2D) 题意 (Codeforces 546D)给定一个数x=a!b!x=a!b!x=\frac{a!}{b!}的形式,问其中有几个质因数。分析数据规模略大,故先作预处理。预处理的时候运用了前缀和和记忆化搜索的思想。 之后就比较简单了。代码#include <bits/stdc++.h>#define MP make_pair#define PB push_back...
「日常训练」 Soldier and Cards (CFR304D2C) 题意 (Codeforces 546C)按照指定的规则打牌,问谁胜或无穷尽。分析又是一条模拟,用set处理即可。注意到两种局势“1 234”和“123 4”的差别,所以用set处理的时候需要在两方手牌中间加上相关的分割符号以示区分。代码#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;#define MP make_pair#define PB push_back...
「日常训练」Soldier and Badges (CFR304D2B) 题意 (Codeforces 548B)对一个n×mn×mn\times m的01方格作q次操作,每次操作分别对一个格子取反,问每次操作后单列的最长连续1格的长度。分析没什么难度,问题是,对题意的理解,以及每次只需要更新一列就可以了。代码#include &lt;bits/stdc++.h&gt;#define MP make_pair#define PB push_b...
「题目代码」P1034~P1038(Java) P1034 C基础-求同存异import java.util.*;import java.io.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner cin=new Scanner(System.in); ...
「题目代码」P1029~P1033(Java) 1029 C基础-求解方程import java.util.*;import java.io.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { for(int i=100;i<=999;++i) {...
「日常训练」 Finite or not? (CFR483D2C) 题意(Codeforces 984C)给定p,q,bp,q,bp,q,b,问pqpq\frac{p}{q}在进制b下是否是无限小数。分析这个我一开始做的很挫,激情纯模拟+摸……但是做着做着就能发现不对劲了。比如说,p与能否无限无关(因为只是倍数关系);问题的实质在于q能否被bbb单纯的表示(这句词是个感性的认识,但是很关键)。 因此,根据这两个认知,我们能够看出,判断无限与否的重点是...
「赛后补题」HBCPC2018题目代码与思路简析 这次比赛(2018年第二届河北省大学生程序设计竞赛)虽然没有打,但是题目还是要写的。未完成的题目(还差比较硬核的四题)和思路分析会陆续更新完。Problem A 2011 Mex Query/* * Operation China Wall * Author: Zuiho * Date: 2018-05 * Problem: 2011-Mex Query */#includ...
「学习记录」《数值分析》第三章计算实习题(Python语言) 第三题暂缺,之后补充。import matplotlib.pyplot as pltimport numpy as npimport scipy.optimize as soimport sympy as spx = sp.symbols('x')def calculate(expr_i, expr_j, expr_value,expr_omega): ans=0 ...
「功能笔记」Linux常用Shell命令(终端命令)备忘录 长期更新,空置、缺漏的部分会逐渐补上。未指明时,均为GNU版本。文件操作列表(ls)、复制(cp)、删除(rm)与移动(mv)ls默认显示非隐藏文件、以文件名进行排序、文件名有颜色(蓝色文件夹、白色一般文件、绿色可执行文件)。 Cheatsheet:ls -al ~ # 显示主文件夹下的所有文件(夹);并显示它们的属性与权限。ls -alF --color=never ...
「日常训练」 神、上帝以及老天爷 (HDU 2048) 题意错排问题。记错排为DnDnD_n,求Dnn!Dnn!\frac{D_n}{n!}。分析显然D1=0,D2=1D1=0,D2=1D_1=0,D_2=1。当n≥3n≥3n≥3时,不妨设n排在了第k位,其中k≠nk≠nk≠n,也就是1≤k≤n−11≤k≤n−11≤k≤n-1。那么我们现在考虑k的情况。当k排在第n位时:n放k、k放n确定,因而除了n和k以外还有n-2个数,其错排...
「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045) 题目简述有排成一行的nnn个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色,求全部的满足要求的涂法。分析首先感谢题解,我个人想半天是出不来的。 考虑第n个与第n-1个的关系。因为第n个不能和第1个同色,那么第n个颜色就是我们判断的突破口,而它是由第n-1个决定的。如果第n-1个保持原来的状况不变,那么第...
「题目代码」P1013~P1017(Java) 1013 C基础-求偶数和import java.util.*;import java.io.*;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner sc=new Scanner(System.in); ...
「题目代码」P1007~P1012(Java) C基础-计负均正import java.util.*;import java.io.*;public class Main{ public static void main(String args[]) { Scanner sc=new Scanner(System.in); int x; int negativeCn...
「日常训练」 Single-use Stones (CFR476D2D) 题意(Codeforces 965D)分析我是激情看题解的,很惭愧。因为自己的算法喜提TLE了w 我参考的题解在这儿。官方题解用了二分的思想。 这个算法是怎么贪心的呢?就在while(p<i && frog[p]+frog[i]<=a[i])这一句。当第i 处已经满了的时候,我们就不考虑[p+1,i−1][p+1,i−1][p+1,i-1]到i的跳跃了。后...
「日常训练」Greedy Arkady (CFR476D2C) 题意(Codeforces 965C)k人分n个糖果,每个糖果至多属于1个人。A某人是第一个拿糖果的。(这点很重要!!) 他x个x个的发糖果,从第一个(他自己)到最后一个,然后再到第一个;多余的糖果丢掉。x不能大于M,单个人最多分糖果轮到他D次。问A某人最多能拿多少糖果。分析先说一句话:这条题目极度坑爹。 先考虑题意,可以发现,A某人不论如何,一定会吃到xdmaxxdmaxxd_{m...
「Haskell 学习」二 类型和函数(上) 随着学习的深入,笔记会补充和修订。当然,这个补充修订也许会鸽,但我一定会坚持写完。 这个笔记假定你至少学过C/C++及Python,或与这两种语言类型相同的语言。类型系统概述“Haskell’s type system allows us to think at a very abstract level: it permits us to write concise, powerf...
「学习记录」《数值分析》第二章计算实习题(Python语言) 难得的五一假期,充实一下自己。利用Python完成了第一章的计算实习题——现在能搜到的基本上都是MATLAB版,或者是各种零碎的版本。这里将它完整的po出来,也方便自己以后查阅,提高自己的Python水平和数值分析的功底。 代码如下: (第一题使用的自己的程序,第二第三题使用的Python自带库)import mathimport matplotlib.pyplot as pltim...
「日常训练」Alena And The Heater (CFR466D2D) 题意(Codeforces 940D)根据给定要求构建数列,求能构建出相同数列的ll和rr。分析这题写的是真的烦。一定要想到对b串要按照5个5个的看!为什么5个5个的看?因为根据题意,是先看前4个再对最后的0/1做判断。所以只需要考虑四种模式:“00000”“00001”“11110”“11111”。对于“11110”和“00001”很好思考,但我是在“11111”和“00000”卡了一会。想一想(
「日常训练」Phone Numbers (CFR466D2C) 题意(Codeforces 940C)给定一字符串,求比它字典序大的字符串。限定其长度,并且只能用原串的字母。分析考虑原串长度loriginl_{origin}与给定的长度lgivenl_{given}。若给定长度大于原串长度,直接在后面加字母就可以了(甚至不论什么字母都可以)。如果给定长度小于等于原串长度,那么最简单的操作是求原串的lgl_g长度子串的后继即可。后继的求法很简单:从后往前,对单位+
「日常训练」Our Tanya is Crying Out Loud (CFR466D2B) 题意(Codeforces 940B)对一个数字xxx,你有两个决策:花费A减一、或花费B除以kkk(但必须可以除尽)。问使之到1的最少花费。分析贼鸡儿简单,但我花式犯蠢……如果除不尽,那么直接用法一减到可以除得尽的;然后比较法一和法二哪个耗费得少,然后继续如上操作直到x=1x=1x=1。典型的贪心算法。 是不是看起来很美?做梦啊!!对于法一,当x<kx<kxk=1k=1...
「Haskell 学习」一 环境与大致了解 感谢《Real World Haskell》在网上的免费发布,可以白嫖学Haskell这个久闻大名的函数式编程语言了。本文运行于openSUSE Tumbleweed下,运行相关命令时留意。安装Linux下想搞和编程相关的事情非常简单,至少比配置游戏要简单。sudo zypper in ghcghc即Glasgow Haskell Compiler,一个主流的编译器。也...
「日常训练」The Intriguing Obsession(CFR439D2C) 题意(CodeForces 869C)三堆点,每堆一种颜色;连接的要求是同色不能相邻或距离必须至少3。问对整个图有几种连接方法,对一个数取模。解析要求很重要:同色不能相邻很容易理解,但是>=3比较难理解。比较常见的是R->G->B->R,这样能看出来一个重要的结论:对单个节点只能连接某个颜色至多一个点。 那么我们在整个图加入一个新点的时候,只需要考虑它和单...
【个人训练】(UVa146)ID Codes 好久不见!寒假大训练!^_^题意与解析这题其实特别简单,求给定排列的后继。使用stl(next_permutation)可以方便地解决这个问题。但是,想要自己动手解就是另外一回事了。我的解法是从后往前找到第一个aia_i比aja_j小(iji)的,然后交换之,接下来i->end范围内重排序即可。代码/* *********************************
【个人训练】(UVa11129)An antiarithmetic permutation 题意与解析一条非常有趣的二分题。一开始没有懂解法,去网上看了半天全是做法没有这样做为什么是对的(或者说的很含糊)。一做完回顾一下立刻有点开朗的感觉。题意很简单,维护一个0~n-1的数列,使其选出长度大于3的子序列(可以不连续)都不能是等差数列。做法网上都有:对于一个等差数列,选出奇数位偶数位,分开放到左边右边;然后对于生成的左等差数列和右等差数列同样这么做。这样做为什么是对的呢?我的个人理解:对于一
【个人训练】(UVa714)Copying Books 好久不更新主要是怠惰了。。。。还要加强训练。题意分析与思路注意到这样一句话:our goal is to minimize the maximum number of pages assigned to a single scriber. Your task is to find the optimal assignment.这种最大化最小、最小化最大 显然是二分。 如何二分呢,枚举分成k份中各份的
【个人训练】(HDU2199)Can you solve this equation? 纯粹水题。本来想做下放松心情的,结果还是被坑了qaq 重点就是在浮点误差。比较左右的下次就直接上1e-10,别看着题目说1e-4然后给个-5,结果暴wa。气傻了。。。。。代码#include <bits/stdc++.h>#define PB push_back#define MP make_pairusing namespace std;#define NQUICKIO#define N
【赛后补题】(HDU6223) Infinite Fraction Path {2017-ACM/ICPC Shenyang Onsite} 场上第二条卡我队的题目。题意与分析按照题意能够生成一个有环的n个点图(每个点有个位数的权值)。图上路过n个点显然能够生成一个n位数的序列。求一个最大序列。 这条题目显然是搜索,但是我队在场上(我负责)最傻的穷举然后wa了(不是tle。。。),于是愣是没想到什么bfs/dfs,调到最后。 回来做,一次tle一次wa。tle显然是因为小霸王评测机变成了土豆评测机,然后采用bfs+剪枝的策略做题。(最
【功能笔记】Ubuntu查看系统资源占用(内存,cpu和进程) {转载} 转载自http://bluexp29.blog.163.com/blog/static/33858148201071534450856/linux真是太强大了。查看ubuntu的资源占用的命令为$: toptop命令就可以查看内存,cpu和进程了,很方便top:主要参数d:指定更新的间隔,以秒计算。q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。c:显示进程完整的路
【题解搬运】PAT_L1-009 N个数求和 从我原来的博客上搬运。原先blog作废。 (伪)水题+1,旨在继续摸清这个blog(囧题目就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。题解对读入,可以使用scanf(“%d/%d”,…);来解决读入问题(scanf很强的! 然后以为自己稳了。。。结果TLE了 问题在哪里呢?在gcd那里,我一开始加上了b与a的大小判断,然而其实不应
【题解搬运】PAT_A1020 树的遍历 从我原来的博客上搬运。原先blog作废。题目 Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order trave
【题解搬运】PAT_A1016 Phone Bills 从我原来的博客上搬运。原先blog作废。题目 A long-distance telephone company charges its customers by the following rules: Making a long-distance call costs a certain amount per minute, depending on the time of day
【题解搬运】蓝桥杯2012年第4题题解 从我原来的博客上搬运。原先blog作废。题目脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA…. 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们
【赛后补题】(HDU6228) Tree {2017-ACM/ICPC Shenyang Onsite} 这条题目当时卡了我们半天,于是成功打铁……今天回来一看,mmp,贪心思想怎么这么弱智。。。。。(怪不得场上那么多人A了题意分析这里是原题: Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem Description Consi
【个人训练】(ZOJ3983)Crusaders Quest 题意分析和祖玛类似的那种玩法。不过是限定了九个字符,问最好情况下有几次三连碰。 暴力穷举即可。具体的做法是,先把所有“成块”的字符记录下来,然后一个一个删,再继续这样子递归做下去。考虑到就只有9个字符,内存和时间的占用不会太高。 这里倒是遇到了盲点:之前不清楚erase的用法。代码#include <bits/stdc++.h>typedef long long...
【紫书】(UVa12219)Common Subexpression Elimination 今天做的题目就是抱佛脚2333 懂的都懂。不管比赛的结果如何,我们的做题过程不会停,不能停。这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的。思路分析做这条题我是先按照之前的那条题目(The SetStack Computer)的思路敲了半天,但是efficiency是贼鸡儿低,而且最后我搞不明白怎么输出结果了。。。。然后只好参考了这位同学的代码。思路大致是
【紫书】(UVa12096) The SetStack Computer 突然转进到第五章的low题目的原因是做到图论了(紫书),然后惊喜的发现第一题就做不出来。那么里面用到了这一题的思想,我们就先解决这题。当然,dp必须继续做下去,这是基本功。断不得。题意分析这条题真的是一条sb模拟题。但是我们还是可以学些什么:一,标id的思想(后面用到了,就是那条UVa12219)。二,set的基本操作。具体思路看代码。但是这题哪里有什么算法...set 和 map 混合应用,真的用
【紫书】(UVa12563)Jin Ge Jin Qu hao 继续战dp。不提。题意分析这题说白了就是一条01背包问题,因为对于给定的秒数你只要-1s(emmmmm)然后就能当01背包做了——那1s送给劲歌金曲(?)。比较好玩的是这里面dp状态的保存——因为要满足两个条件,因此我们的状态的定义也随之改变,使用自定义的结构体来保存。这个是我以前从来没接触过也没想到的。非常高级了,记下来。感谢想到的dalao!代码#include <set>#include <
【紫书】(UVa1347)Tour 继续考虑dp题目。题意分析其实这里只是更加仔细的做一个lrj的复读机(Orz 他分析了一个很重要的结果:如果是一个人从左到右再回来,并且每个点恰经过一次,那么等价于两个人从左到右每个点经过一次地遍历这些点。因为这样,我们才能够得到d[i,j]d[i,j]这样的方法来记录值。 但是这样也不够。d[i,j]d[i,j]我们最开始得到的是比较简单的记录状态:A走到i,B走到j得到的最小距离——那我怎么
【个人训练】(POJ3267)The Cow Lexicon 继续大战dp,一定要把这一关闯过去!题意分析这条题目的大意是这样的,问一字符串内最少删去多少的字符使其由给定的若干字符串构成。实际上没看题解我根本想不到这题的dp解法,只能说思维还是太浅薄幼稚了。 具体的dp解法是什么呢?考虑一下我们删去的这个过程。比如说这个式子throwthraow我们要不然删去a,要不然删去 “thraow”。我们怎么知道删去a能够使得这俩个单词匹配的?我们当然是逐字逐字的
【个人训练】(POJ1276)Cash Machine 最近的很多题解应该都是dp相关的了,emmm因为dp对我而言思考难度比较大,那么为了理顺自己的思路当然只能通过写blog整理了。愿我能成功搞定dp这个大关!(至少中等难度的dp要能够解决啊o(TヘTo))题意分析这条题目是一条明显的多重背包题目。遇到这种题目,我们首先简单的转化为01背包问题来解决。(思路:把nin_i个viv_i拆分开来)但是呢,有一个二进制优化可以采用,就是在这个拆分机制上。重点
【个人训练】(POJ1837)Balance 这几天抓住国庆的黄金时间(因为没有女朋友,天天刷题emmmm 其实还在肝少前还要捞秋刀鱼) ,重点攻克掉几个基本的地方:搜索、dp、图论。这几天的题目应该就是这些范围。题意原题的意思大概是这样的,有个天平,上面一堆挂钩,然后一堆砝码,砝码挂在挂钩上面,问平衡的情况有几种。分析显然不能穷举,因为O(2020)O(20^{20})的复杂度太高了。我们不妨换个思路想:在我们放上一个砝码的时候,究竟发生了什
【个人训练】(POJ3279)Fliptile 最近在刷kuangbin神犇的各种套题。。。。感觉自己好弱啊。。。。。还是要多多训练,跟上大神的脚步。最近的这十几题都比较水,记下来这一条我比较印象深刻、也比较难的题目吧(之后应该不会再有水题写了,珍惜水题啊QAQ)思考题目其实很简单,踩黑白啊,而且规模也不算大。问题在于我们怎么穷举。注意到一个问题,我们对单行中先后变换的次序其实不改变最后的结果。也就是说,对于单列的变换,其实我们可以纯粹的只考虑上
【个人训练】(POJ1328)Radar Installation 这条题目A了十次。。。emmmmm 其实不难就是一个贪心。。。。先说下算法(之前的和现在的)之前考虑的其实很简单。用平面几何即可将雷达可以放置的区域转化为区间(顺便判断是否无解。问题就比较简单了:先排序。然后我们第一个区间我们肯定是放在区间的最右边,然后对后面的我们如何处理呢?若后一个区间的左边在目前区间的右边,我们肯定是不用动这个雷达的摆放位置的;如果不满足,那么我们就要看看后一个区间的右边和这个
【个人笔记】关于C++小数的处理 和我之前的记忆有偏差,ISO C++(至少到11)里面,cout的输出小数保留小数都是四舍五入的。因此如果一定要输出不四舍五入的,就必须使用C-Style的方式printf(…)来实现。反过来,如果c-style要实现四舍五入怎么做呢?这里只介绍正数上的四舍五入,如果实现小数上的可以转换为整数再做。 int dad=233.4,son=450.9; printf("%.2f%.2f",
【多校联合】(HDU6095)Rikka with Competition 先po代码在这里,之后讲讲自己的思路……还是自己太弱。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PB push_back#define REP(i,n) for(int (i)=0;(i)!=(n);++(i))#define REP_1(i,n) for(int (i)=1;(i)<=n
【多校联合】(HDU6045)Is Derek lying? 分析之前没有想到题目解法,看了题解才会,记录一下思考过程。这条题目的实质是,在满足合法的情况下,有没有aa和dd的可行解?也就是说,不要仅仅附在表面的思考逻辑条件,而是要思考实际的数学表达。转化为数学模型,不妨设在二人答案相同的情况下,mm为都对,nn为都错;不同的情况下,pp为D对A错,qq为D错A对,rr为都错。 于是我们可以建立这样的一个方程组: ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪m+p=x,m+q=
【多校联合】(HDU6043)KazaQ's Socks 【多校联合】(HDU6043)KazaQ’s Socks一条纯粹的水题,记录下只是因为自己错的太多而已。 原因在于对数据的细节的把握不佳。原题KazaQ’s SocksTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Problem Description KazaQ wear