
模拟 & 匹配
文章平均质量分 63
SuPhoebe
不是我针对谁,我是说在座的诸位都比我强
展开
-
BUPT 2014新生暑假个人排位赛03
A. 学姐的数码管原创 2014-07-18 23:40:28 · 948 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛05
BOJ 442 平方的平均值注意看题啊,用long long和绝对值是肯定原创 2014-07-23 23:20:25 · 803 阅读 · 0 评论 -
Leetcode 391. Perfect Rectangle
解题思想这道题是说给了一堆小矩形的坐标(左下角和右上角围成的),问其能否组合成一个完美的矩形(刚刚好,不多,不少,不交叉重复)。核心思想就是:能够正好围成一个矩形的情况就是: 有且只有:最左下/最左上/最右下/最右上的四个点只出现过一次,其他肯定是出现两次和四次(保证完全覆盖) 上面四个点围成的面积,正好等于所有子矩形的面积之和(保证不重复)class Solution(object):原创 2016-08-29 22:17:34 · 1409 阅读 · 0 评论 -
Hihocoder 1228 Mission Impossible 6
#include<bits/stdc++.h>#define MAXM 10005using namespace std;int t,m;int ope_num;bool mode;bool copy_status;int copy_pos1;string s;string clip;string board;int caret_pos;//---------------------原创 2015-09-21 12:02:55 · 639 阅读 · 0 评论 -
2015-2016 ACM-ICPC, NEERC, Moscow Subregional Contest C. Colder-Hotter
交互题首先三分x坐标,然后因为三分不准确,所以在附近震荡求精确值。 其次同样的方法求出y坐标。注意,询问次数的上限是500。 每次询问的时候,(x,y)(x,y)的两个坐标必须在[0,1E9][0,1E9]之间。// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algori原创 2015-10-22 16:05:20 · 1183 阅读 · 0 评论 -
HDU 5374 Tetris
唯一的坑点是#号 剩下就是细节了,我这里的姿势有点不太好,solve函数在中间return的时候没有将操作数的下标+1,导致查了半天…// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algorithm>#include <iostream>#include <ioman原创 2015-08-12 12:41:48 · 1099 阅读 · 2 评论 -
Aizu 2302 On or Off
传送门 暴力模拟 因为每个房间之间只有一条路,所以不用什么决策或者dp dfs出每个点经过的时间,然后比较,cost[i][j]×(Tnow−Tpre)cost[i][j]\times (T_{now}-T{pre})与on[i][j]+off[i][j]on[i][j] + off[i][j]哪个小就选哪个。 第一次经过一定要开灯和最后一次经过一定要关灯。所以只要经过了就需要加上on[i]原创 2015-08-22 19:16:58 · 604 阅读 · 0 评论 -
UESTC 490 Swap Game
题意: 有一堆红球白求围了个圈,求用最少的交换次数使得红的白的各自连在一起。 思路: 因为是环,因此将整个环变为长度为2n2n的链,实现循环。 那么如果是枚举每一个长度为nn的片段,再判断的话,时间复杂度为O(n2)O(n^2),太慢了。 那么需要将复杂度降低至少到O(nlogn)O(nlogn)因为是环,所以存在一个两个方向都能走的问题, 首先,假设所有的R全都往最前面移,那么移动的次原创 2015-06-10 09:45:12 · 706 阅读 · 0 评论 -
模拟退火算法分析
一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为原创 2015-02-05 11:26:57 · 3426 阅读 · 0 评论 -
遗传算法(GA)的C语言实现
问题:在下面的程序中将要运用遗传算法对一个多项式求最小值要求在(-8,8)间寻找使表达式达到最小的x,误差为0.001问题分析:编码:采用常规码,即二进制码编码。构造简单,交叉、变异的实现非常容易,同时解的表达也很简洁、直观。可以每0.001取一个点,这样理论误差讲小于0.0005,可以满足题目中的误差要求。此事总的求解空间为:N = (8 - (-8)) *原创 2015-02-05 10:07:27 · 29071 阅读 · 12 评论 -
Codeforces Round #279 (Div. 2) E. Restoring Increasing Sequence
用了一个简单易懂但是实现比较慢的方法贪心,先用含有问号串构造出最大的满足条件的值(即?用9代替),如果再挨个位数比较,如果减下去还能大于上一个的值,则就减从而使得现在的数是满足条件中最小的。因为是从可能的最大的开始减少,如果还是比前一个小则不可以;因为前面的前部都是满足条件中最小的数,所以给后面的数留出了最大的改变空间。// whn6325689#include原创 2014-11-30 21:09:44 · 674 阅读 · 0 评论 -
HDU 5386 Cover
有几种思路倒过来做 枚举每个操作,然后判断该操作是不是最后一个操作。 判断是否是最后一个操作方法就是,除去已经用过的点,如果一排都相同的话,那就是最后一个操作。 如果是最后一个操作的话,就把所以的同样类型同样行列的废操作放在他们的前面。#include <bits/stdc++.h>using namespace std;const int MAXN=105;int n, m;char原创 2015-08-13 20:35:57 · 840 阅读 · 0 评论 -
hihocoder 1233 Boxes
打表 通过最终排序好的情况直接bfs得到合法状态的,状压的时候有多种方法。 第一种是最直接的,因为只有7个数,每个位置上最多也只可能是7个数,所以你用一个数组表示每一位有哪些块,然后用一个long long状压出你这个状态的情况,用map标记判重。 这样的复杂度会稍微大一些,可能不能直接在线打表,所以你大一个表再交上去。我们的比赛的时候程序大概88kb,杭电上就会挂了。第二种是用n进制状压,用原创 2015-09-21 18:24:38 · 690 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛11
488. 小妹妹个数原创 2014-08-06 23:00:16 · 1542 阅读 · 0 评论 -
Testing Round #11
A. Up the hill原创 2014-11-21 09:19:35 · 623 阅读 · 0 评论 -
755C - PolandBall and Forest
题意有n个结点,分布在数量未知的树上,也就是说这些树可能是一个森林。 现在给出每个点在各自树上的最远点,如果有多个最远点的话,那就给出id编号最小的那一个点。思路1直接无脑并查集#include<iostream>using namespace std;int parent[100005];int find(int x) { return x==parent[x]?x:f原创 2017-03-02 10:48:50 · 504 阅读 · 0 评论 -
Andrew Stankevich Contest 28 - F
Problem F. Move to FrontInput file: mtf.in Output file: mtf.out Time limit: 1 second Memory limit: 256 megabytesMove-to-Front is a method of transforming sequences of positive integer numbers, that原创 2015-07-12 14:35:53 · 786 阅读 · 0 评论 -
Codeforces Round #381 (Div. 1) A. Alyona and mex
这道题我觉得题意看懂了,大问题也就没有了。 一个比较简单的思维题。mex是不在子串中的最小非负数,那么对于一个子串而言,最大的mex就是子串的长度+1。因为子串的长度不一,那么mex就有一个范围,题意就是让你使得mex的最小值最大化,也就是保证最小长度的子串(假设长度为len)能够取到[0, len-1]的数。那么,看到0~len-1就要想到 取模 。需要保证无论我的最短子串取在何处都可以取到0~原创 2016-11-24 10:37:31 · 431 阅读 · 0 评论 -
Codeforces Round #306 (Div. 2) D-E
D构造 首先我们想到的是做一个对称的图形,如同哑铃一般,中间的就是桥,两侧的就是双连通块。 那么我们想到的是构造一个双连通块,使得这个双连通块有一个点的度数为k−1k-1,其他点的度数为kk。 接着想到了完全图,对于一个完全图来说,每个点的度数为n−1n-1,但是这样做不能够保证有一个点的度数为k−1k-1,于是想到再加上一个点用k+2k+2个点去构造。 此时发现当kk是偶数的时候是不能够构原创 2015-09-19 11:16:58 · 525 阅读 · 0 评论 -
Looksery Cup 2015 B. Looksery Party
贪心构造题 一定可以构造出来。枚举每一个人,如果此时已经收到的短信数量恰好等于预测的数目,则将其选中。因为自己会给自己发短信,所以恰好多余预测数目,之后短信只增不减就不用考虑了。 短信少于预测的可能会收到影响,所以直接暴力到不会受到影响位置。// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#原创 2015-09-18 10:57:55 · 554 阅读 · 0 评论 -
Codeforces Round #319 (Div. 1) B. Invariance of Tree
B. Invariance of TreeA tree of size n is an undirected connected graph consisting of n vertices without cycles.Consider some tree with nn vertices. We call a tree invariant relative to permutation p =原创 2015-09-11 20:00:57 · 944 阅读 · 0 评论 -
遗传算法入门到掌握(一)
博主前言:此文章来自一份网络资料,原作者不明,是我看过的最好的一份遗传算法教程,如果你能耐心看完他,相信你一定能基本掌握遗传算法。 遗传算法的有趣应用很多,诸如寻路问题,8数码问题,囚犯困境,动作控制,找圆心问题(这是一个国外网友的建议:在一个不规则的多边形 中,寻找一个包含在该多边形内的最大圆圈的圆心。),TSP问题(在以后的章节里面将做详细介绍。),生产转载 2015-02-05 09:46:17 · 2640 阅读 · 1 评论 -
遗传算法入门到掌握(二)
遗传算法引擎――GenAlg [cpp] view plaincopy"font-size:16px;">/遗传算法 class GenAlg { public: //这个容器将储存每一个个体的染色体 vect转载 2015-02-05 09:48:52 · 2468 阅读 · 3 评论 -
Codeforces Round #305 (Div. 1) A && B
547A - Mike and Frog先考虑,从h1h_1 ->a1a_1的过程,计算需要的时间 如果在M次内,没有到达则不可到达 然后再判断是否符合h2h_2->a2a_2的时间如果还是不行就进行周期考虑,假设h1h_1已经变成了a1a_1,h2h_2变成了xxxxxx 计算从a1a_1->a1a_1的时间(假设为cc),然后通过以下的方式 假设g(x) = Xh2 + Yg(x) =原创 2015-05-27 17:24:56 · 714 阅读 · 0 评论 -
HDU 4937 Lucky Number
先#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define C原创 2014-08-12 20:23:34 · 596 阅读 · 0 评论 -
HDU 5033 Building
#include #include #include #include #include #include #include #define maxn 100005#define maxq 100005#define PI acos(-1.0 )#define eps (1e-10)using namespace std;struct Building{原创 2014-09-21 19:16:28 · 696 阅读 · 0 评论 -
Codeforces Round #265 (Div. 1) A No to Palindromes!
暴力重排(注意重拍第一个字母#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d原创 2014-09-09 12:26:30 · 616 阅读 · 0 评论 -
Codeforces Round #265 (Div. 1) B Restore Cube
从第二行开始暴力排序然后判断是否可以构成正方体原创 2014-09-09 12:21:54 · 635 阅读 · 0 评论 -
HDU 4928 Series 2
神奇的剪枝将数列中 零与#include#include#include#include#include#include#include#include#define pi acos(-1.0)#define eps 1e-8#define ll long long#define L 1000050#define N 100050#define Mod 1原创 2014-08-07 16:59:35 · 762 阅读 · 0 评论 -
HDU 4925 Apple Tree
找规律交错选择种植和施肥当某一项为 1 的时候特判原创 2014-08-07 16:59:20 · 676 阅读 · 0 评论 -
五子棋AI设计
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define eps 1e-9#de原创 2014-08-06 12:06:00 · 983 阅读 · 0 评论 -
HDU 4915 Parenthese sequence
从前扫一遍,记录最大和最小的可能的左括号的值#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-08-05 18:54:57 · 1000 阅读 · 0 评论 -
BUPT2014新生暑假个人排位赛08
BOJ 448 游戏计算几何原创 2014-07-30 20:11:21 · 784 阅读 · 0 评论 -
HDU 4951 Multiplication table
题解:出现次数最多的数一定是 0 十位数全是代表 0 的数的位置原创 2014-08-14 19:15:13 · 643 阅读 · 0 评论 -
Codeforces Round #266 (Div. 2)
B.枚举a1, b并根据原创 2014-09-15 20:06:55 · 590 阅读 · 0 评论 -
HDU 4162 Shape Number
大意:原串通过相邻的数字相减得到的差或8减该差得到一个新串,然后输出新串(看成环)如果仅仅只是求最小的字母序的排列,那么就可以直接用字符串的最小表示法直接解决,可以得到最小排列的第一个字符在该字符串的那个位置。但是题目要求了,必须要规范normalize。 所以要求一阶差分链码,求了一阶差分链码之后,然后对这链码用最小表示法直接求解。循环字符串的最小表示法的问题可以这样描述:原创 2015-02-24 21:44:03 · 549 阅读 · 0 评论 -
UVALIVE 4887 Soccer && UVELIVE 4882
2015 UESTC Winter Training #6 训练赛的两道搜索模拟题uvalive 4882// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include #include #include #include #include #include #include原创 2015-02-25 10:27:26 · 750 阅读 · 0 评论 -
Phoebe implementation invitational for 2014 tiro 3.0 部分题解
A。给出两个非负整数a,b,求出符合这个等式 的所有x,并输出 x 的数量,如果 x 有无限多个,那么输出 infinity。a mod x == b,等价于 a = k*x + b。设 mul = a - b,那么 k*x = mul,然后就不断枚举 mul 的因子,即 kx = mul。由于 mod 出来的结果为 b,那么 k 或 x 至少有一个比 b 大,如果两个原创 2014-12-23 22:27:27 · 774 阅读 · 0 评论 -
Codeforces Round #287 (Div. 2)C. Guess Your Way Out!
题意:告诉你完全二叉树的高度以及它所要求的结点的位置始终满足左右左右顺序走,不能走就返回父亲结点问:到达给出的结点位置之前走过了几个结点解题思路:根据样例解释可以发现,如果你在某一层,需要往右边走,但是你实际上走了左边走。你就会将左子树全部遍历之后再走到右子树。因此经过结点数为左子树+根结点。走到右子树的时候发现如果需要往左走,实际上也往左走,经过的结点就只有根结点原创 2015-01-28 16:10:26 · 632 阅读 · 0 评论 -
2014 Asia Beijing Regional Contest
A. HDU 5112// whn6325689#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-02 22:13:44 · 667 阅读 · 0 评论