自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mercury

记录以前的想法

  • 博客(99)
  • 收藏
  • 关注

原创 博客迁移,不再更新

博客已迁移至这里。

2019-01-16 21:32:59 279

原创 《Python编程技术》课程综述——(二)高级特性及OOP

随后的课程内容包括了一部分Python高级特性,包括迭代器、生成器、匿名函数、异常处理、面向对象编程等等。首先,我们需要理解迭代的概念:所谓迭代,即用循环来遍历可迭代对象。判断对象是否可迭代:from collections import Iterableisinstance('123', Iterable) # Trueisinstance(123, Iterable) # False...

2019-01-03 23:00:11 200

原创 《Python编程技术》课程综述——(一)基础特性

(忙了一年又回来写博客了。这次是Python课的期末作业。。写综述有点无聊。)本学期学习了Python语言。由于之前已经学习过C, C++, Java(以及VB, Pascal, 前端三件套)等较难的编程语言,Python语言的学习没有太多挑战性。容易注意到,Python语言最大的特点是现成的可方便调用的库很丰富,语言本身对于一些底层操作的封装也做得很好,因此常常可以看到效果相同的程序,用Pyt...

2019-01-03 14:07:05 389

原创 B-Tree

#include <iostream>using namespace std;template <class Record, int order>struct B_node{ int cnt; Record data[order-1]; B_node<Record, order> *branch[order]; B_no...

2018-06-13 20:39:29 205

原创 AVL树

数据结构上机课花了点时间实现的AVL树,基本上在抄书。。包含了二叉树、二叉查找树和AVL树的实现,不过毕竟没有真正学过C++,对OOP也还不算很熟悉。。碰到了一些问题:继承的类也不能访问父类的private成员,不过可以用using 父类::成员名的方式访问父类的protected成员子类中重载了父类的某个成员函数后,对子类和父类中的该函数同时加virtual关键字修饰,可以在运行时判...

2018-06-02 12:47:24 166

原创 EOJ 2616 游黄山

https://acm.ecnu.edu.cn/problem/2616/分别对x和y利用前缀和求带权中位数。这类题不是经常遇到,所以记录一下。#include <bits/stdc++.h>using namespace std;struct Point{ double x, y, w;}p[105];double sum[105];bool cmpx...

2018-04-22 12:36:43 337

原创 EOJ 2155/UVA 529/POJ 2248/Ulm Local 1997 Addition Chains

https://cn.vjudge.net/problem/UVA-529容易想到用搜索做.比较难想的是:构造一个a数组记录每个小于n的数要经过多少个数列项之后才能到达n.这样做的好处是便于最优性剪枝:如果发现[当前数列长度]加上[至少还需要的数列长度]已经超过了当前最优解则剪枝.之后就是按题意常规dfs.#include <bits/stdc++.h>using nam...

2018-04-12 21:38:00 208

原创 EOJ 1718/POJ 3134/UVA 1374 Power Calculus

https://cn.vjudge.net/problem/UVA-1374LRJ紫书说要用IDA*,粗略想了想似乎是可以不用的.这里就简单dfs了一下+照搬紫书剪枝,代码意外地短.还可以进一步优化,不过考虑到这题的数据量,已经没有必要了.#include<cstdio>using namespace std;int ans, n, a[105];bool dfs...

2018-04-03 20:01:12 225

原创 EOJ 2887 指针

https://acm.ecnu.edu.cn/problem/2887/指针确实令人头疼…这题最终还是问了同学才做出来,可能是CSAPP没学好??因为最短的类型是两个字节的char,所以读入内容的时候用的char数组,之后的指针也声明的char*类型.随后移动指针到要读/写的地址,根据输入的类型进行强制转换并修改.#include <bits/stdc++.h>usin...

2018-03-29 15:48:22 199

原创 图论练习

https://www.luogu.org/problemnew/show/P2661把同学看作点,传信息看作连一条边,那么游戏结束当且仅当图中存在环,这题中即是求最小环。DFS当然是可以的,出于偷懒这里用了带权并查集,在路径压缩和合并时还需要更新父节点的值。#include <bits/stdc++.h>using namespace std;const int m...

2018-03-27 22:24:33 141

原创 洛谷 1058 立体图

https://www.luogu.org/problemnew/show/P1058应该说就是找规律然后计算坐标,由于覆盖的问题在画图的时候注意顺序可以省去不必要的麻烦. 感觉还挺好看的,放个样例:INPUT3 42 2 1 22 2 1 13 2 1 2OUTPUT......+---+---+...+---+..+---+ / /|../ /|...

2018-03-25 21:41:10 279

原创 UVa 10183/EOJ 1297/POJ 2413/HDU 1316/ZOJ 1962 How many Fibs?【Java大整数类应用】

https://cn.vjudge.net/problem/UVA-10183题目没难度,C++写法需要高精度,这里练习使用Java的BigInteger类,毕竟刚学…… Java的语法真是冗长……import java.util.*;import java.math.*;public class Main{ public static void main(String ...

2018-03-24 21:12:55 183

原创 位运算用法整理

简介整理了一些和位运算相关的内容,主要分为以下几个部分:集合的整数表示位运算的常见技巧和常用公式gcc中__builtin系列函数及C++中bitset类的简介集合的整数表示//以下内容摘自挑战程序设计竞赛:在程序中表示集合的方法有很多种,当元素数比较少时,像这样用二进制码来表示比较方便.集合{0,1,...,n−1}{0,1,...,n−1}\{0,1,....

2018-03-11 22:31:12 796

原创 程序设计能力实训 资料准备

其实差不多就是模板集合,如果来得及会加上一些库函数的使用方法……EOJ上已故的10175101282Mercury的Blog里面包含的这里就不重复写了。其实主要都是数论相关。注意:C++限定。高精度//加法(非负)inline string add(string s1, string s2){ string s; int len1 = s1.size(), ...

2018-03-10 21:32:10 1098 1

原创 zkw线段树

关于zkw线段树是啥,参见他本人的ppt:统计的力量(相比递归版线段树:) 优点:代码量较少,空间需求略少(实际上不需要4倍),运行效率较高(非递归); 缺点:应用范围有限制.尽管可以稍加修改就支持单点更新/单点查询/区间更新/区间求和/区间RMQ等,但其中部分功能似乎不能同时实现…总体来说,无论是代码量还是应用范围都介于树状数组和递归版线段树之间.关于这个数据结构还在摸索…下面是...

2018-03-08 21:52:21 176

原创 EOJ 3464/NEERC 2017 C.Connections【Kosaraju求强连通分量】

http://acm.ecnu.edu.cn/problem/3464/ 给定一个n个点m条边的图,要求删掉一些边使得图仍然强连通且只剩2n条边。问删去哪些边。我觉得这就是一题Kosaraju模板题。。随便选个点dfs,然后反向建图再让所有点往刚才选的这个点dfs,这样经过的边就是必须留下的边了。尽管没有tarjan那么简单,但实际上还是不难理解的。#include<b...

2018-03-04 22:57:08 267

原创 EOJ 1159/POJ 3286 How many 0's?

http://acm.ecnu.edu.cn/problem/1159/ 给定m,n问从m到n之间有多少0。又到了令人头大的数位dp时间…… 不过这里没有用数位dp,直接前缀和+递推解决的。比较费草稿纸而不是键盘,属于思维题吧。#include <bits/stdc++.h>using namespace std;typedef long long ll;...

2018-03-04 20:50:33 189

原创 EOJ 3272 核反应控制

http://acm.ecnu.edu.cn/problem/3272/ 最近学校OJ需要挂VPN才能进…… 有集合 A={a1,a2,…,an},如果存在 i,j,k(i≠j,i≠k,j≠k) 使得 ai+aj=ak,则输出 NO;否则输出 YES。数据没加强前很简单,暴力枚举加一点小优化就可以过。加强之后的标准做法FFT,暂时还不太会。有学长写了一种类似分块的办法: 用...

2018-03-04 20:43:40 225

原创 洛谷1020 导弹拦截

https://www.luogu.org/problem/show?pid=P1020第一问数列取反之后用类似求LIS的O(nlogn)算法就可以了。 第二问的关键在于Dilworth定理,就这题而言可以表述成: 一个数列划分成最少的最长不升子序列数==这个数列的最长上升子序列长度也就是说求一下LIS就做完了。 似乎第二问也可以贪心做,但是知道定理的情况下显然是求LIS更容...

2018-03-03 13:59:54 251

原创 洛谷1006 传纸条

https://www.luogu.org/problemnew/show/P1006棋盘dp,化双向为单向:视作从左上往右下传两张纸条且路劲不重复。 又由于只能向右或向下传递,所以两张纸条过程中必定处于同一斜线上,即横纵坐标之和相等。这样就得到了降维的关键。 用dp[s][i][j]表示纸条1走到第i行,纸条2走到第j行时的最大好心程度,那么方程也不难推得了。#include &...

2018-03-03 13:51:33 188

原创 EOJ 1839 恶魔之城

题目简介给定一个迷宫和起点终点,求最快要多少步到终点以及最快的路径,不能到达输出-1。说明显然bfs,也因此需要开一个step数组记录步数,更新没有走过的点的step。路径还原则又需要一个数组记录这一步的上一个点,还原时从后往前递归输出即可。#include <bits/stdc++.h>using namespace std;const int maxn...

2018-02-28 14:23:14 269

原创 EOJ 1418/POJ 2566 Bound Found

题目简介给定一个数列和t,求总和最接近t的一段连续子序列及其和。说明由于n达到了1e5不能采用n^2算法,因此考虑用前缀和+尺取法(滑动窗口法/two pointers)降低复杂度。#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+5;const int INF = 0x...

2018-02-28 14:11:29 153

原创 EOJ 2026/POJ 3662/USACO 2008 Jan. Telephone Lines「spfa + 二分」

题目简介求从点1到点n第(k+1)长的路径的最小值。说明二分第(k+1)长的路径的长度,小于这个长度的可以看作权值为0, 大于这个长度的可以看作权值为1。跑spfa作为二分的判断条件。#include <bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int m...

2018-02-26 18:23:41 159

原创 EOJ 3497/EOJ Monthly 2018.2 D.黑心的出租车

题目简介给定一个树/森林,从1号点出发,遍历森林中所有的点最后回到1号点。 大巴可以在有边相连的两点间往返,而出租车可以在任意两点间往返。 要求:乘出租车次数最少的情况下,乘大巴次数也最少,求两个次数。说明官方题解: 因为题目保证无环,因此必为树或森林。 当图为一棵树时,答案为 0,2(n−1)。 当图为森林时,出租车次数判一下联通块即可,其实答案就是 ...

2018-02-24 14:44:35 351

原创 EOJ 1748 Box Walking

题目简介给定长方体的长宽高以及长方体表面的一个点(x,y,z),求从点(0,0,0)出发到(x,y,z)的最短距离的平方。说明这是个看似简单实际上也简单的问题。首先如果该点在(0,0,0)所在的三个平面之一之内,那么显然连线长度就是答案。对于其他情况,考虑平铺长方体的六个面,这时连线的长度也几乎是答案,但是画画图不难发现有时候连线会跑到平铺后的长方体外面去……这意味着我们需...

2018-02-23 21:09:40 147

原创 博弈题初步

EOJ 1067 石子游戏-A 甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定。两人轮流按下列规则取走一些石子,游戏的规则如下: 1. 每一步应取走至少一枚石子; 2. 每一步只能从某一堆中取走部分或全部石子; 3. 如果谁无法按规则取子,谁就是输家。 如果甲乙两人都采取最优的策略,请问,是甲必胜还是乙必胜。简单的Nim博弈,求一下异或和。#in...

2018-02-19 15:56:57 278

原创 EOJ 1189/POJ 1113/HDU 1348 Wall

题目简介给定平面上的n个点及半径r,求圆的周长与凸包周长之和。说明记录一下Graham求凸包的模板。#include <bits/stdc++.h>using namespace std;const double PI = acos(-1.0);const int maxn = 1005;struct point {int x, y;}p[maxn]...

2018-02-17 22:15:22 223

原创 两道(疑似)哈希的题

2018.2.5 新生训练Week3 E.密码碰撞EOJ 的登录系统爆出了一个重大问题,当正确的密码是你输入的密码的子串时,就可以成功登录!例如你的密码是 abc,则你输入 abcc,aabc,甚至 dfjklsdfabcsdjfkl,都可以成功登录!出现了这么大的问题,那就一定要有人来背锅,管理员们希望在背锅之前先衡量一下锅的大小。现在有一份 EOJ 用户的密码表,里面包含了...

2018-02-13 17:38:17 306

原创 EOJ 2018.2.5新生训练Week3 D.Game of Chairs

n个椅子,c种颜色排成一圈,间隔1m。随机选一种颜色,你要马上移动到这种颜色的椅子上(原本颜色相同则不动)。求走动距离的最小期望(输出最简分数)。 1 ≤ c ≤ n ≤ 1e6据说暴力模拟+优化(n^2—>nlogn?)2.5s内可过……不过这里用了一些数学知识,复杂度降到O(n)。(其实是2n,不过eoj评测姬太快了,可以忽略)首先肯定是常规的环拆链操作:复制一...

2018-02-10 17:55:17 323

原创 走道铺砖问题

n*m的走道铺满1*2的地砖,求铺设方案数。 1 <= N,M <= 11状压dp。我们知道这题中上一行的状态可以一定程度上决定下一行,且铺一块砖的方式只有两种:竖放和横放。 不妨用1 1表示横放的砖块,上0下1来表示竖放的砖块。为什么这样表示?横放砖块对下一行完全没有影响竖放砖块的下半部分填充了下一行的一个格子。竖放砖块的上半部分对下一行有影响:如果上一...

2018-02-10 16:45:26 1562

原创 EOJ 1805 字符串匹配【后缀数组】

题目简介给你 2 个字符串(可能包括数字以及标点),长度不超过 50124,请你求出最长的连续的公共子序列。说明不知道是不是数据改了,导致这个似乎是n^2的算法也能暴力过去:#include <bits/stdc++.h>using namespace std;int main(){ string a, b; int len, m...

2018-02-09 16:20:34 391

原创 判断线段是否与矩形相交

输入格式: xstart ystart xend yend xleft ytop xright ybottom Note: The terms top left and bottom right do not imply any ordering of coordinates.计算几何题对我来说,光是写对就要花很久,而代码还要做到既简洁又易懂真是难上加难…… 注意点在于:

2018-02-07 22:00:11 4360 3

原创 EOJ 3201/AOJ 2224 Save your cats【Kruskal】

题目简介n个点,m条边的图,要使得图中没有圈,求要去掉的边的权值和的最小值。说明求图的最大生成树,用总权值减生成树权值得到答案。似乎是只能用kruskal做。边数组应该是要开到10000 * 10000 / 2的,没想到eoj上提交rte,改成10000 * 100就好了……#include using namespace std;#define maxn 11000

2018-02-06 13:44:10 159

原创 EOJ 3199/POJ 1258 Agri-Net【Prim】

题目简介好像就是直接求最小生成树啊……说明就是记录一下写得比较简洁的Prim算法而已。#include using namespace std;const int maxn = 105;const int INF = 0x3f3f3f3f;int mp[maxn][maxn], dis[maxn], vis[maxn], n, sum;inline i

2018-02-06 13:10:19 209

原创 EOJ 2018.1.29新生训练Week2

总体来说不算好做……但是确实也不难。A给定正整数n,k,求f(n,k)=∑i=1nik" role="presentation" style="position: relative;">f(n,k)=∑ni=1ikf(n,k)=∑i=1nikf(n,k)=\sum^n_{i=1}i^k,结果对19260817取模。 1 时限0.698s(???)上来用拉格朗日

2018-02-05 15:21:35 629

原创 简单的对拍程序

感觉在代码里加freopen太麻烦了 经常忘记删然后交上去RTE一发 ,不如写个批处理来重定向输入输出。首先需要这样一个文件夹,AC放标程,WA放错误的程序,记得编译成exe。.out文件、.bat文件可以用空记事本改后缀名创建。Input.txt放测试数据。 然后我们右键编辑这个bat文件(不是双击),插入如下代码:@echo offWA.exe .txt > WA

2018-02-05 13:35:14 134

原创 EOJ 2525/USACO 2008 November Gold Light Switching【线段树】

题意简介有n个灯,m次操作,0表示一段区间内灯的状态全部反转,1表示询问一段区间内亮着的灯的数量。说明裸线段树……借鉴了模板,算是第一次写。#include using namespace std;const int maxn = 1e5+5;int st[maxn2], add[maxn2], n, m, flag, s, e;void pushdown(i

2018-02-05 12:20:23 152

原创 DP进阶

EOJ 1051 完全加括号的矩阵连乘积n 个矩阵的矩阵链A1,A2,…,An" role="presentation" style="position: relative;">A1,A2,…,AnA1,A2,…,AnA_1,A_2,…,A_n,矩阵 Ai" role="presentation" style="position: relative;">AiAiA_i 的规模

2018-02-05 11:36:14 209

原创 轻量级的巧妙解法

EOJ 1076 染气球 一共有 N 只气球,小强将 N 只气球从左到右依次编号为 1、2、3……N,每次给 2 个整数 a,b (a<=b),小强便骑上他的“小飞鸽 ” 牌电动车从气球 a 开始到气球 b 依次给每个气球涂一次颜色。但是 N 次以后小强已经忘记了第 I 个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? N <= 100000da...

2018-02-04 12:52:43 262

原创 DFS and Similar系列

EOJ 1646/POJ 3126 Prime Path 把一个四位质数变为另一个四位质数,要求每次只能改动一位数,且变化过程中产生的数也是四位质数。先筛出质数,然后普通bfs。#includeusing namespace std;int prime[10000];string s, t;bool vis[10000];void init(){

2018-02-04 12:09:10 2213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除