随笔分类 -  题目记录

1 2 3 4 5 ··· 7 下一页
摘要:题意 在一张n个点,m条边的无向图中允许再加一条边,问增加后图中最少还有多少条割边。$(1≤N,M≤10^5)$ 分析 要注意这样一个情况,一般求割边在不是和网络流有关的情况下都是和双连通分量有关的。因为是割边,因此我们按照边双连通分量缩点,得到一个森林,此时森林里的每一个边都是割边。 然后接下来考 阅读全文
posted @ 2019-09-29 19:54 ISoLT 阅读(180) 评论(0) 推荐(0)
摘要:题意与分析 题意大致是这样的:给定一个$n\times s$的矩阵,每次可以随机的在这个矩阵内给一个格子染色(染过色的仍然可能被选中),问每一行和每一列都有格子被染色的次数的期望。 这题如果从概率(从正方向推)就会白给,不信你自己试试;而定义反方向的推导($e_{i,j}$意为从i行j列已有染色格子 阅读全文
posted @ 2019-04-19 13:08 ISoLT 阅读(134) 评论(0) 推荐(0)
摘要:题意与分析 定义走到每条边的期望为$e_i$,一开始的想法是给定一个$\large\sum_{i=1}^n e_i a_i$,求一个a的排列使得这个和最小。问题在于这样等于没对题目作分析,而且题目的难度没有被转化降低。于是(在高人指点下)我们想到,如果先求出$e_i$,然后按照从小到大的顺序贪心的编 阅读全文
posted @ 2019-04-19 12:45 ISoLT 阅读(151) 评论(0) 推荐(0)
摘要:题意与分析 题意是这样的,问你把一个长方形从一个L型街道的一端移动到另一端,固定了该长方形的长,求他的最大宽。 这种问题我是第一次独立解决(以前都是抱队友大腿QAQ),现在没法子只好自己硬着头皮做,看了题解。 不失一般性,保证$a\le b$。那么l要么比两个小,要么在一个中间,要么比他们都大。比两 阅读全文
posted @ 2019-03-20 16:14 ISoLT 阅读(257) 评论(0) 推荐(0)
摘要:题意与分析 这题意思是这样的:在正方体的六面镶嵌给定颜色的宝石(相同颜色不区分),然后问最多有几种彼此不等价(即各种旋转过后看起来一致)的方案。 其实可以乱搞,因为范围只有720。求出全排列,然后每个旋转很多次,看看彼此可不可能相同,很多次旋转后都相同说明稳了,然后最后统计即可。 这题相当有意思的是 阅读全文
posted @ 2019-03-20 15:43 ISoLT 阅读(260) 评论(0) 推荐(0)
摘要:题意与分析 需要注意非法情况。换言之,合法情况其实很苛刻。 代码 java / ACM Code = cf99b.java Written by Sam X Date: 三月, 19, 2019 Time: 10:45 / import java.util. ; import java.math. 阅读全文
posted @ 2019-03-20 15:37 ISoLT 阅读(237) 评论(0) 推荐(0)
摘要:题意与分析 题意很简单,但是注意到小数可能有一千位,作为一周java选手的我选择了java解决。 这里的分析会归纳一些必要的Java API:(待补) 代码 阅读全文
posted @ 2019-03-20 15:36 ISoLT 阅读(154) 评论(0) 推荐(0)
摘要:题意与分析 这题也是傻逼题,可是我当时打比赛的时候板子出问题了- -|||,怎么调也调不过。 不过思路是很清晰的:先做n次dijkstra然后重新建图,建完了以后根据新的单向图再跑一次dijkstra。 代码 1 #include <bits/stdc++.h> 2 3 #define ZERO(x 阅读全文
posted @ 2019-03-16 15:43 ISoLT 阅读(157) 评论(0) 推荐(0)
摘要:题意与分析 对于这题题意的理解比较重要,因为这是一条傻逼题: 大小写保持不变 原串中出现的非法字符串里的每一个字符都要替换 Lucky Letter越多越好 这样一种情况下,算法其实特别简单。我傻逼在一个地方:暴力的时候一定要考虑所有的非法串,不能看到一个匹配了就走了(举例: Ijksdf 和Ij) 阅读全文
posted @ 2019-03-16 15:37 ISoLT 阅读(236) 评论(0) 推荐(0)
摘要:分析 题目实际上是在要在给定的边上构建出一个树,使得这个树的最长边尽可能小。 这实际上是最小生成树的性质(反证法)。问题从而得到解决。 代码 C++ / Code name = csp201812 5.cc Written by Sam X Date: 三月, 12, 2019 Time: 10:1 阅读全文
posted @ 2019-03-12 11:04 ISoLT 阅读(206) 评论(0) 推荐(0)
摘要:题意 给定两个$P,Q$的正整数区间($P,Q$都符合$[L,R]$这个区间,并且都$\le 10^9$),分别从其中随机选出一个数,选出的两个数作为一个新区间的左右端点。要求新区间内的幸运数刚好为$k$个的概率(幸运数指一个数的数位只有4或7)。 分析 这题要思考着做。首先能有一个直觉:在$10^ 阅读全文
posted @ 2019-03-11 18:29 ISoLT 阅读(252) 评论(0) 推荐(0)
摘要:分析 与其说是算法题,不如说是语言特性题。 这题要是对Java的String相关函数掌握的比较熟练,写起来的速度(各种意义上)就会很快。 大致的思路都是一致的,差不到哪里去,无非是枚举长度。值得一提的是,从长到短的枚举顺序要比从短到长优得多。 代码 java class Solution { pub 阅读全文
posted @ 2019-02-10 01:13 ISoLT 阅读(238) 评论(0) 推荐(0)
摘要:分析 把具体的情况一个一个实现即可,没有什么幺蛾子。 代码 java class Solution { public int romanToInt(String s) { int ans = 0; for (int i=0; i!=s.length(); ++i) { switch(s.charAt 阅读全文
posted @ 2019-02-10 00:45 ISoLT 阅读(199) 评论(0) 推荐(0)
摘要:题意 给定两个数组c和t,可以对c数组中的任何元素变换$c_i$​成$c_{i+1}+c_{i 1} c_i$​,问c数组在若干次变换后能否变换成t数组。 分析 这种魔法题目我是同样的没做过。Editorial里说用差分来能够看出思路。问题是,如何能够想到差分来做?因为它的变换就是相邻的数的加减法, 阅读全文
posted @ 2019-02-09 23:45 ISoLT 阅读(218) 评论(0) 推荐(0)
摘要:题意 你有n个数字,范围[1, m],你可以选择其中的三个数字构成一个三元组,但是这三个数字必须是连续的或者相同的,每个数字只能用一次,问这n个数字最多构成多少个三元组? 分析 根据官方Editorial的说法,似乎没有一个真正正确的贪心(但是说不定就有人乱搞出来了)。这里用dp来解决问题。 这种d 阅读全文
posted @ 2019-02-09 02:15 ISoLT 阅读(492) 评论(0) 推荐(0)
摘要:代码 java for(int i=0; i!=n; ++i) { int u = cin.nextInt(); int v = cin.nextInt(); edges.add(new Edge(u,v)); startpnt = u; if(g.get(u)==null) g.put(u, ne 阅读全文
posted @ 2019-01-23 21:57 ISoLT 阅读(122) 评论(0) 推荐(0)
摘要:与其说是训练不如说是重温。重新写了Java版本的代码。 阅读全文
posted @ 2019-01-22 17:24 ISoLT 阅读(178) 评论(0) 推荐(0)
摘要:分析 注意到跳跃的方向是一致的,所以我们需要维护一个数接下来跳到哪里去的问题。换句话说,就是对于一个数$A_i$,比它大的最小值$A_j$是谁?或者反过来。 这里有两种方案,一种是单调栈,简单说一下思路:维护一个递减的单调栈,每次放入元素时将比它大的栈顶元素弹出(说明这些元素都能在递减的情况下都能跳 阅读全文
posted @ 2019-01-15 04:28 ISoLT 阅读(515) 评论(0) 推荐(0)
摘要:分析 这题场上前缀和都想出来了,然后就没有然后了。。。哭惹.jpg 前缀和相减能够得到任意一段连续区间的和,然后他们取余$K$看余数是否为0就能得到。这是朴素的遍历算法。那么反过来说,如果两个前缀和都对$K$余$p$,那么他们相减一定能够被K整除。 我们就这么统计就可以了,然后一个简单的求和即可。想 阅读全文
posted @ 2019-01-14 00:43 ISoLT 阅读(474) 评论(0) 推荐(0)
摘要:分析 好久不刷题真的思维僵化,要考虑到这样一个结论:如果递增的三个数$x_i,x_{i+1},x_{i+2}$不符合题意,那么最大的两边之差一定大于等于第一条边,那么任何比第一条边小的都不能成立。这样一来,递增排序,然后线性找就可以了。 代码 阅读全文
posted @ 2019-01-14 00:31 ISoLT 阅读(275) 评论(0) 推荐(0)

1 2 3 4 5 ··· 7 下一页