自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Remilia's

此博客停更了,新博客地址www.zhuoyifan.net

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

原创 BestCoder Round #41 A B C

A:52张牌,枚举每种可以的情况,统计已经有x张牌了,需要换的就是5 - x张,不断维护最小值就可以了B:败的情况只有2种,两个串奇偶性不同,两个串完全相同,所以简单统计一下就可以了,最后除上总情况C(n, 2)即可C:这题看了官方题解才会的,dp[i][j] = dp[i - j][j] + dp[i - j][j - 1],自己也是没想到,弱爆了,具体的可以看官方题解,有的递推式子,然

2015-05-17 11:15:07 1375

原创 2011 Asia Fuzhou Regional Contest

这两天做了套题,2011的福州区域赛,把基本算能做的7题做了,感觉这套题多是,两种算法糅合在一起,硬搞出一道题- - 而且有好几道题我是用到了rmq。。A:暴力黑帅走的4个方向,然后去枚举每个红棋能不能攻击到就可以了,注意细节B:先把每个月饼,加上(m - i) * s,这样就能消除等差数列的影响,然后每个订单处理出时间后now,在now 和 now - t中找出最小值这步用rmq即可,然

2015-05-15 01:04:57 1574

原创 POJ 3264 Balanced Lineup (RMQ)

检验模板代码:#include #include #include #include #include using namespace std;const int N = 200005;int n, m;int rmax[N][20], rmin[N][20], rmi[N], dp[N];void rmqinit(int n) { rmi[0] = -1;

2015-05-12 20:23:29 901

原创 HDU 2196 Computer(树的直径)

输出一棵树上,每个点到最远点的距离思路:先搜两遍找出树的直径,然后在从这两点出发,每个点距离这两点中距离大的就是最远点距离代码:#include #include #include #include #include using namespace std;const int N = 50005;int n, m;struct Edge { int v, w

2015-05-12 17:02:44 716

原创 HDU 4006 The kth great number(优先队列)

由于只有插入操作,所以不很复杂的数据结构,优先队列就可以了,每次保持队列中有k个元素,这样取出的头必然是第k大代码:#include #include #include #include using namespace std;int n, k;int main() { while (~scanf("%d%d", &n, &k)) { char s[

2015-05-12 00:56:42 604

原创 HDU 4055 Number String(dp)

dp[i][j]表示i个数,结尾是j的种数,对于多一个数字,如果要增加dp[i][j] = sigma{dp[i - 1][k]} {k j),实际转移过程只需要循环一遍,不断记录前缀和即可代码:#include #include #include using namespace std;const int N = 1005;const int MOD = 100000000

2015-05-12 00:55:37 773

原创 HDU 4054 Hexadecimal View(模拟)

利用%x直接输出16进制数,简单模拟即可,水题代码:#include #include #include using namespace std;const int N = 1000005;char s[N];int main() { while (gets(s) != NULL) { int len = strlen(s); for

2015-05-12 00:51:33 759

原创 HDU 4004 The Frog's Games (二分贪心)

二分答案,每次贪心尽量跳远去判断即可代码:#include #include #include using namespace std;const int N = 500005;int L, n, m, a[N];bool judge(int mid) { int s = 0; int cnt = 0; while (s != n) {

2015-05-12 00:50:52 694

原创 HDU 4046 Panda(线段树)

线段树区间合并,合并注意下r, b的转移即可代码:#include #include #include using namespace std;const int N = 50005;int t, n, q;char s[3], str[N];#define lson(x) ((x<<1)+1)#define rson(x) ((x<<1)+2)struct No

2015-05-12 00:50:17 740

原创 HDU 4041 Eliminate Witches!(模拟)

这个用类似词法分析器去模拟就可以了,对于路径,用一个栈去维护代码:#include #include #include #include #include #include #include #include using namespace std;const int N = 1000005;int t, n, u, hn;char str[N], name[15

2015-05-12 00:48:03 686

原创 hihocoder 1159 扑克牌(组合DP)

先预处理出每种牌的张数,对于花色只要考虑一下排列组合即可那么设dp[i][j],表示用到第i张牌,相邻位置为相同花色有j个,然后枚举当前的牌要分成几堆,几堆插入到相同花色位置,剩下插入到不同花色位置,这样去转移即可代码:#include #include #include using namespace std;typedef unsigned long long ll;c

2015-05-11 12:54:23 1025

原创 POJ 2976 Dropping tests(01分数规划)

01分数规划代码:#include #include #include using namespace std;const int N = 1005;typedef long long ll;int n, k;double a[N], b[N], tmp[N];bool cmp(double a, double b) { return a > b;}in

2015-05-11 11:21:49 695

原创 hihocoder 1157 建造金字塔 (DP)

每个金字塔其实相当于一个区间,把这个区间按左端点排序,然后dp[i][j]表示,用到第i个金字塔,j表示覆盖到j,因为按左端点排序了,所以如果j被覆盖到,那么当前的i,往前肯定不会覆盖超过前面金字塔的覆盖,所以只要考虑后一部分的转移,转移具体见代码代码:#include #include #include using namespace std;typedef long long

2015-05-11 11:00:19 1034 2

原创 hihocoder 1169 猜数字

线段树离线处理,把数字和询问一起排序,然后从小到大插入数字,每次询问就找寻区间最大值,在从大到小做一遍,每次询问找区间最小值,这样每次询问出来的值肯定是原来数字左右两边最接近的代码:#include #include #include using namespace std;const int N = 200005;int n, m, t, qn;struct Query

2015-05-10 23:35:05 853

原创 hihocoder 1170 机器人

预处理每两个颜色i,j,j完全移动到i之前的代价,这个只要计算j每个位置之前有多少个i,累加起来就是了然后状压DP,每次新加入一个颜色,就计算把这个颜色和移到已有颜色之前的代价总和,然后进行转移即可代码:#include #include #include using namespace std;const int N = 100005;typedef long long

2015-05-10 23:34:46 875

原创 hihocoder 1160 攻城略地

先并查集处理出每个集合,和每个集合最小的点的下标然后把每个点权值从大到排序,砍k条边其实相当于加m - k条边,每次加一条边可以减少一个点的权值(除了每个集合的最小点),这样从大到小把能删的尽量贪心删掉即可代码:#include #include #include #include using namespace std;typedef long long ll;con

2015-05-10 23:31:07 687

原创 hihocoder 1158 质数相关

很明显的最大独立集, 预处理出矛盾边点数1000个,用HK算法保险代码:#include #include #include #include #include using namespace std;const int N = 1005;const int INF = 0x3f3f3f3f;bool bmask[N];int nx, ny, dis;int c

2015-05-10 23:29:04 581

原创 hihocoder 1156 彩色的树

这题快速维护的方法是:每个节点只有一个父亲,和许多儿子这样每个节点存放儿子每种颜色的数目,用个map来存,然后和父亲的关系每次特殊考虑即可每次染色完,把当前节点颜色修改,然后父亲的map修改即可代码:#include #include #include #include #include using namespace std;const int N = 1000

2015-05-10 23:28:56 550

原创 hihocoder 1150 基站选址

首先X,Y轴分开考虑,枚举B,对于坐标分成左边和右边,这两边都是满足凹函数的,可以三分求解,维护最小值(不过据说这题数据很水,我模拟退火的也过了代码:#include #include #include using namespace std;typedef long long ll;const int N = 105;int ax[N * 10], ay[N * 10

2015-05-10 23:26:01 910

原创 BestCoder Round #40 A B C

A,水题,直接枚举到sqrtB,每次对于每一位枚举,如果小于当前位,那么答案可以计算出来,增加得答案为:设3个部分,前完全一样的部分a,中间新选的一个b,后面的全排列c,这样就把每部分和每两部分能够组成的逆序对个数计算出来,由于n只有100,里面在去枚举也是没问题的,主要是后面全排列c的逆序对数,这个可以利用dp处理出来,dp[i] = dp[i - 1] * i + i! * sum(i -

2015-05-10 15:05:16 1305

原创 赛码"BestCoder"杯中国大学生程序设计冠军赛

今天终于有时间补题了。。06神数论没补。01:贪心的思路,扫3遍,尽量找右区间小的02:这里用的是kuangbin神的黑科技,并查集,把一个点拆成一个奇数点和偶数点,每次连边就奇数边和偶数边连,如果出现一个点自己的奇数和偶数点在一个集合中就是有奇环,如果在加一条边的时候,这条边已经在一个集合了,那么肯定会出现偶环(如果本来是奇环,加一条边进去必然出现偶环)03:和官方题解一个思路,主要

2015-05-08 14:19:44 1234 3

原创 福州大学第十二届程序设计竞赛题解

A:这题利用单调栈,先预处理出每个位置向下的最远位置,那么每一行单独考虑,每行就相当于一些段的子矩阵个数,利用单调栈维护,每次出栈的时候把大于当前要入栈(高度0的不入栈了)的段的部分计算出来,累加一下答案即可B:这题可以枚举,因为一个10^15开3方之后是10^5枚举起来是没有问题的,然后枚举一个数字i,等于要计算在max(a, i * i * i)到min(i * i * i, b)区间,有

2015-05-04 02:05:43 1849

原创 Acdream 1076 XXX的机器人(dp + 线段树)

题目链接:http://acdream.info/problem?pid=1076这题DP的状态很好设计,dp[i][j]表示指令i的时候,全排列状态是j,全排列一共就120个,预处理出来就可以了那么问题就在于对于一个指令怎么快速获得这个整个区间的置换乘积,这步其实利用一个线段树维护就可以了,但是要注意置换是不满足交换律的,所以正序逆序都要保存一遍代码:#include #inc

2015-05-04 00:56:56 1509

原创 SGU 120 Archipelago (计算几何)

就计算几何向量旋转什么的搞搞搞就OK了代码:#include #include #include #include using namespace std;const int N = 155;const double pi = acos(-1.0);int n, n1, n2;struct Point { double x, y; int id;

2015-05-02 01:55:10 599

空空如也

空空如也

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

TA关注的人

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