- 博客(18)
- 收藏
- 关注
原创 我的.vimrc
set guifont=Monaco:h14set background=lightset shortmess=atIset cindent autoindent number sts=4 sw=4 ts=4 etset nobackupfiletype onfiletype plugin onfiletype indent onautocmd FileType pyth...
2015-11-06 09:55:56 340
原创 南邮新生赛题解
话说题目好像有点难,好吧就是我的锅。下面主要是一点提示和我自己的ac代码。A:这是一道树形dp(勉强这么说吧)。贪心的思路如下,如果一颗子树经过某些操作可以使其变成全0,那么无论以怎样的顺序执行这些操作,都可以使其达到全0状态。记add[i],cut[i]为对于以i为根的子树达成全零需要加,减的操作数那么,对于某个节点u,先递推求解子节点的add和cut,u节点的add
2015-08-21 19:42:21 585
原创 codeforces 566B Replicating Processes
题目链接问题其实很简单,就是必定有解。更准确的说是在以任意顺序执行k个合法操作后仍然有解。。。证明比较复杂,大概用反证法,假设存在一个不可能进行下一步的状态,考虑到题目中的限定,剩余的那些操作一定构成了环,而且一定保留“空隙”(说的很玄乎,其实随便脑补即可)#include #include #include #include #include #include usi
2015-08-17 00:18:26 685
原创 codeforces 566A Matching Names
题目链接重点是贪心。显然,若a,b分别是前n个与后n个串中可匹配的最长的那个,那么a一定和b匹配。把a,b“删除”,依次类推。明白了这个思路问题就很简单了#include #include #include #include #include #include using namespace std;typedef long long ll;const int m
2015-08-17 00:07:29 558
原创 hdu 5381 The sum of gcd
http://acm.hdu.edu.cn/showproblem.php?pid=5381一条莫队算法的题。本来也有过这样的考虑,然而因为并不能O(1)得到区间转移的值,所以一开始放弃了。想不到题目数据比较小,卡过去了。。。。莫队算法本质上就是把原来的查询顺序改变。先把整个区间分块,每块长度为sqrt(n);对于左端点在同一区间的询问,我们对他们的右端点排序;为了叙述方便,我
2015-08-14 20:21:50 691
原创 hdu 5307 He is Flying
题目链接公式题:考虑多项式(Σi*x^si)(Σ x^-s(i-1)) -(Σx^si)(Σ (i-1)x^-s(i-1))si表示前i项和。考虑其中正数项系数的值,发现正好是题目要求的答案(证明也不难,分开来算一下即可,当然想出这个公式还是很难的)。至于距离为0(第一个答案)的答案扫一遍即可。(因为有负项,只要对多项式乘一个x^sn即可转换为正项)至于求系数自然是fft,(fft的主
2015-08-11 19:01:38 809 1
原创 hdu 5278 YJC plays automaton
题目链接足足想了我两天,向比赛中做出的大神致敬。。。思路:先求出所有的二元组(i,j),使得该二元组满足题意。这个可以通过建立反向边求得(bfs)然后对于二元组(i,j),(j,k),若都不满足题意,则集合(i,j,k),(i,k)一定不满足题意(反证:假设(i,k)满足题意,则存在str使得i->x,k->null(或者反过来),而j在这个str下不是null就是某个非nul
2015-07-11 14:02:58 451
原创 hdu 5277 YJC counts stars
好像别人都是根据最大团为4来判断的。。。然而根本不要那么麻烦,随便搞搞就过了。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;struct edge {
2015-07-05 20:05:08 280
原创 hdu 5208 Where is Bob
题目链接数论,或者说与异或相关的数论题貌似首选想到按位考虑,不多说了(剪枝部分需要注意)#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int solve
2015-07-01 10:18:53 382
原创 hdu 5270 ZYB loves Xor II
题目链接此类数论题大多按位考虑,显然暴力会超时。不妨对(a+b)的第i位做考虑,将a,b都模2^(i+1),显然在(a+b)∈[2^i,2^(i+1))∪[3*2^i,2^(i+2))时该位为1.所以我们只要求大于某个数的(a+b)的个数即可值得注意的是,为了在排序时降低复杂度,可以让mod值从大到小然后归并排序,具体见代码。#include #include #inclu
2015-06-30 05:06:40 612
原创 hdu 5269 ZYB loves Xor I
http://acm.hdu.edu.cn/showproblem.php?pid=5269据说官方题解是用trie做的,然而弱只能递归#include #include #include #include #include using namespace std; const int mod=998244353;typedef long long ll;
2015-06-13 21:42:37 407
原创 poj 3177 Redundant Paths
http://poj.org/problem?id=3177 题目大意:求最小的添加路径数使原图变成一个边—双连通图。(允许重复边
2015-06-13 15:01:58 426
原创 2015 上海邀请赛c题 calculator hdu5238
http://acm.hdu.edu.cn/showproblem.php?pid=5238题目很不错,注意到29393=7*13*17*19,只要计算出答案模这四个数的值即可通过中国剩余定理解出答案。那么如何高效求解这四个值呢?可以用一个映射cha[i][j]表示,i表示mod的值是第i种,j表示对这段区间而言的初始长度。显然tree[x].cha[j][i]=tree[lr(x
2015-05-29 19:38:19 512
原创 Spring Outing 微软2016校园招聘在线笔试第二场
相比较于前两题,这题应该算是小有难度。其实不是难在思维多么复杂,也不是算法要多高明,主要难在读题。一开始我以为只要宏观考虑,简单的说如果有数i,j(i尽可能小,i越小表示喜好程度越高)使得至少有超出一半的人对于j的喜好小于i,结果wa了。。。后来仔细研究了一下说明,换了一个思路。如果1-k这些地点都不选,则最后必定是在家。对于地点k,如果玩家i对于k的喜好程度更高(相较于在家)
2015-05-10 23:04:14 1001
原创 Numeric Keypad 微软2016校园招聘在线笔试第二场
先打表预处理(lr[i][j]表示j可以再i后面出现)然后直接扫一遍(注意有的时候要回退数位)另外还是要细心,之前wa了两次都是因为一个小细节的错误。。。#include #include using namespace std;bool lr[10][10];int map[4][5];int main(){// freopen("aa.txt","r",stdin);
2015-05-10 18:22:16 956
原创 Lucky Substrings 微软2016校园招聘在线笔试第二场
数据比较弱(100)先算出fibonacci数列,然后建一棵树用来储存要输出的字符串。#include #include using namespace std;char ori[101],val[10000];int down[10000],rig[10000],num=1;bool end_[10000];char * substr(int i,int j){ char
2015-05-10 18:11:26 414
原创 Algorithm Homework
点击打开链接一条签到题。思想很简单,就是所有奇数项可以排列成有序,偶数项类同,最后比较与正确排序是否有差距。#include #include #include #include #include #include #include using namespace std;int source_1[50005],source_2[50005];bool cmp (in
2015-05-05 13:22:05 424
原创 Justice is Given by Light,一条计算几何
http://acm.uestc.edu.cn/#/problem/show/814直接贴代码吧,思路过会儿写(先睡了)#include #include #include #include #include #include using namespace std;typedef long long ll;inline double fab(double m)
2015-05-05 00:34:14 358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人