自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 2019Java面试

lock和synchorized的区别1.synchroized是JVM层面的java内置关键字,lock是一个Java类2.synchroized无法判断是否获取到锁,但是lock可以3.synchroized会自动释放锁,lock需要手动释放锁4.synchroized:如果线程1阻塞,线程2会一直等待 lock:如果线程1阻塞,线程2尝试获取不到锁会直接结束线程5.sync...

2019-03-07 22:06:36 2800 2

原创 HDU5536(暴力加字典树)

叔叔传你过去题意:给出一个数列,保证每个数都不相同,让你从中找出 :两个数的和亦或上另外一个数最大的结果,输出这个亦或结果。思路:字典树,建立四个域: ch [u] [2]: 父节点编号为u,字符0或者1代表的那一条边连向哪个节点 sz[maxn]: 经过节点的数字有几个(方便删除) val[maxn]: 存放在每个数的结尾处,方便查询的时候返回,表示该数本身的值

2018-02-01 15:52:42 308

原创 HDU-4825(数组维护字典树,更节省内存的写法)

叔叔传你过去指针动态分配内存: 数组分配内存: 所以还是用数组嘛,虽然有点抽象,但简单易操作,而且代码短#includetypedef long long ll;using namespace std;#define maxn 2000005#define son 2int ch[maxn][2],sz,val[maxn];//节点编号,字典树节点个数,值vo

2018-01-31 17:38:36 561

原创 HDU4825(字典树)

叔叔传你过去从高位建树,保证亦或值最大,如果某一位在集合里存在不同的数,就选择该分支,否则选择一样的分支#includetypedef long long ll;using namespace std;struct tire{ tire *son[2]; int val; tire() { val=0; son[

2018-01-31 16:53:37 236

原创 小Z的妹子(HYSBZ 2038)--莫队模板

叔叔传你过去 莫队模板题,直接上代码了#includeusing namespace std;#define maxn 50005typedef long long ll;ll c[maxn][3],ans,ans1;int a[maxn];int len;//每块的长度struct query{ int L,R,ID,block;//起点,终点,查询编号,块号

2018-01-30 20:35:19 223

原创 HDU3966(树链剖分+线段树区间更新,单点查询)

传送门题意:有n个节点,每两个节点有一条唯一路径,有两种操作 1:给l到r的节点+k或者-k 2:查询x节点的值思路:裸的树链剖分加一个线段树区间更新,网上有好多代码写得明显不对居然过了,这题数据太水了,还发表了博客,第一次写树链剖分,写下博客,当作笔记。#include#define lson l,m,rt#define rson m+1,r,rtusing names

2018-01-26 18:49:28 183

原创 codeforces 825B(DFS)

还没睡醒,来集训队都迟到了,迷迷糊糊过的题,CF日常卡评测机,而且这题样例贼多,估计是因为都是“YES”,“NO”的输出怕概率过题吧,哈哈,虽然是一道水题,但也写个博客醒醒脑。题意:五子棋嘛,大家都玩过,10*10的棋盘,问现在的棋局,Alice是否能一局获胜。 思路:八个方向,暴力枚举每个” . “,对于点的每两个相对方向,如果” X “的个数加起来>=4,那么就可以一局获胜。#inc

2018-01-25 15:46:53 208

原创 codeforces_625d(树状数组+离散化)

传送门 题意:求每个给出的段包含几个其他给出的段 思路:按照左端点从大到小右端点从小到大排序,这样可以保证i后面的段都不在i这个区间内, 对于每个i,我们只需要看有多少段的r小于a[i].r,就可以知道i包含了几个段,所以我们用树状数组来做,对于每个右端点查询完之后更新a[i].r=1;树状数组里,用a[i].r作为树状数组的下标,但是由于范围太大,所以必须要离散化;#include

2018-01-23 10:34:37 208 1

原创 codeforce_914D(GCD+线段树)

题意:给出一个数组,查询某一段的GCD是否猜测正确,假如这段最多有一个数不是所有数GCD的倍数,那么就算猜对了,否则就是猜错。 思路:用线段树维护每一段的GCD,单点更新不用说,那么在查询的时候,需要稍微做点手脚,向下查询的时候,如果说左子树的GCD不能整除x,就说明至少在左子树这个区间有一个数不是x的倍数,这些数可能在要找的区间[a,b]里,也可能不在,而是在左子树-[a,b]的集合里,如果是

2018-01-21 20:54:02 766

原创 codeforces_916B

题意:给定n,n是由一系列数的和组成,这些数是2^a,2^b,2^c。。。。最多有k个,你的目的是让a,b,c….中最大的数最小,如果这样的数列有多个,输出字典序最大的那个。 思路:二进制之所以唯一是因为它的每一个二进制位都只能使用一次,比如23=2^4+2^2+2^1+2^0,二进制在每位都使用一次且保证最大的数最小的情况下,去唯一的表示了一个数,那么我们假设每个二进制位能用无数多次,那么每个

2018-01-20 19:53:28 585

原创 http://codeforces.com/contest/915/problem/C

传送门 题意:给出两个数a,b将a的每一位打乱重组成一个比b小最大的数。 思路:从小到大对a排序,选取这样的数的每一位,设置一个中间字符串t,把当前位和后面更大的位交换,若交换后,任然满足条件,则让a也执行同样的交换,否则,a不执行任何操作。#include#include#includeusing namespace std;int main(){ long long

2018-01-16 14:08:16 202

原创 Poj3468(线段树延迟更新)

传送门题意: 给出l,r,x,对l到r上的每个数都加上x; 给出l,r,对l到r求和 思路:线段树延迟更新#include#include#include#includeusing namespace std;#define maxn 2000005typedef long long ll;ll da[maxn*2+5],db[maxn*2+5];int n,q;v

2018-01-10 16:58:47 271

原创 51Node 1400

51node 1400 传送门 思路:对于每一个数,要么放在A数列,要么放在B数列,第里一个数一定是放在A数列的,然后我们很容易想到从所有数中去找一个和A数列中当前所放的这个数相同的数放在B数列中,但是如果有许多个和A数列当前所放的数相同的怎么办呢,该找哪个位置的,这是个难题,那么我们试着用穷竭搜索(DFS)去做,找到这个相等的值,试着把它放进去,继续DFS,如果这个选择是正确的,那么就不用再

2018-01-06 22:21:48 169

原创 codeforces906b(DFS)

点击打开链接题意:老师怕班上的同学相互抄袭作业,要给同学们重新安排座位,输入n和m,表示矩阵的行数和列数,第i行第j列的元素是(i-1)*m+j,要求安排后的座位之前相邻的都不相邻(相邻为四个方向),如果不能找到这种座位安排,输出"NO",如果找到就输出”YES“,并且输出找到的矩阵。思路:DFS,先交换两个数,再判断交换后的数是否现在相邻的数字之前也相邻,如果是,那就换回来,如果不是,进

2017-12-26 18:50:04 841

原创 梦里什么都有(状压DP)

梦里什么都有时间限制: 1000ms 内存限制: 524288KB通过次数: 3 总提交次数: 25问题描述Air_H 和灰哥身为两个老大(dalao), 经常派给小弟 zbt 很多任务, zbt 也不堪重负。 一天, 两个大哥又要 zbt 去广纳中北贤士为将来进入 icpc world final 做准备。zbt 当然很苦恼啦,他不知道怎样出考题了

2017-12-12 21:34:11 363 2

原创 Codeforces 897C(递归)

点击打开链接扎心题,当时想法完全正确,姿势不对(思维不够细腻)没过。题意:给出四个字符串x,y,f0,z,并且给出递推公式:fi=x+fi-1+y+fi-1+z,对于每次询问,输入两个数n和k,表示fn的第k个字符。思路:k表示第fn的第k个字符,既然fn是由递推公式得来,那么k同样可以通过由递推公式得到,那么我们就可以由已知的k,通过递推公式往回推n次,这样就会得到fn中第k个对

2017-12-03 20:55:51 772 4

原创 Codeforces 895C

点击打开链接题意:找出n个数的所有子集中乘起来是平方数的个数思路:,一个数如果是平方数,那么它的所有质因子都是偶数个,ai小于等于70,所以可以预处理出所有质因子,然后再判断每一个数含有多少个质因子,如果是偶数个,那么这个数肯定是平方数,肯定可以被选作为集合中的元素,如果这个数含有某个质因子奇数个,那么就先把质因子那一位用1表示放在一个容器里,等到再有奇数质因子的标记被放进来,就看是不是同

2017-12-02 16:17:22 568 2

原创 牛客网wannafly 4,b题(小AA的数列

点击打开链接思路:计算出最终结果每一位上有多少个1是在符合条件的亦或过程中产生的,然后加权求和就可以。#includeusing namespace std;typedef long long LL;const LL mod=1e9+7;int a[100005];int xorsum[100005];int dp[2][2];//i为下标奇偶,j为在此位前缀和有多少个奇

2017-11-25 21:50:24 243

原创 牛客网Wannafly挑战赛4(割草机)

点击打开链接思路:不管怎么走,都必须从第一个有'W'的行走到最后一个有'W'的行,对于每一行,都必须处理完这行所有的'W',如果在奇数行,那就应该走到这行和下一行有W的最右边,再往下走,如果在偶数行,那就应该走到该行和下一行有W的最左端,然后往下走,这样才能保证把所有草割完。注意:预先处理最后有W的一行,割到这行之后,就不用再往下割草了#includeusing namespace

2017-11-25 10:36:43 626 1

原创 Codeforces 888E(折半查找)

题目传送门题意:给出一个序列,找出一个子序列,使得这个子序列%m最大思路:很容易想到用二进制的每一位表示某个数选或者不选,但是如果宝力的去找,2的35次方肯定超时,那么这样考虑,先把这个原序列一半的所有情况放进一个set里,遍历后一半,每遍历一个就去set里找等于(m-1-目前这个数的值),m-1是最大的余数,如果找不到等于的,那就求其次,找出那个第一个小于的,每次更新答案即可。

2017-11-23 20:05:10 594

原创 UVA10891(区间DP)

题意:给一个数链,每个人只能从一端取连续多个,并且每个人都想让自己最后的值相对较大,两个人采取最优策略,求最后的差值是多少。思路:定义状态为目前的子串为i到j时,当前玩家可取得的最优价值,dp[i][j]=sum[i][j]-min(dp[i][k],dp[k][j]);#includeusing namespace std;#define maxn 110#define inf 0

2017-10-25 22:28:04 237

原创 CodeForces 580D (状压DP) Kefa and Dishes

点击打开链接题意:有n盘菜,从里面选m盘可以品尝,每盘菜有一个满意值,另外有k种关系,先吃某盘菜后吃某盘的话可以增加ai满意度。思路:约束条件有当前吃的哪盘菜,在吃这盘菜之前吃了哪几盘菜,所以定义状态是dp[i][j],表示当前让第i盘菜作为吃的最后一盘时,已经吃了菜的集合为j,获得的最大满意度;用n位2进制表示状态,1表示吃过了这盘菜,0表示没吃,状态转移方程:dp[i][j]=ma

2017-10-21 09:41:54 230

原创 SGU223(状压DP入门)

点击打开链接题意:有n*n的棋盘,放置k个棋子,求所有棋子不相邻(八个方向)的方法数思路:整个问题的约束条件有行数N,棋子个数k,棋子之间的状态;所以我们可以把状态定义为dp[i][j][a]:表示前i行,放置j个棋子,棋子间的状态为a的时候方案数是多少。那么状态转移也很简单,该行的放置只和前一行有关,所以状态转移定义为:dp[i][j][a]+=dp[i-1][j-num[a]][b

2017-10-17 16:43:49 657

原创 Basic Data Structure(HDU 5929 2016东北地区CCPC)

题意:对0,1序列进行四种操作:压进栈,弹出栈,转置,查询所有数的nand;思路:首先我们发现暴力会超时,压栈好写,弹出也好写,但是查询怎么搞,转置怎么搞,后来可以发现,从栈的底部往上第一个0的位置以上如果还有元素,那么该位置的nand结果就是1,如果没有就是0,那么我们只需要知道距离栈低最近的0的位置就好,至于转置,我们可以用deque可以在前端插入值这个良好的性质,没有转置时候我们从前往后

2017-10-14 21:19:35 171

原创 POJ - 2184 (01背包变形)

"Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - Cows with Guns by Dana Lyons The cows want to prove to the public that they are both smart and fun. In order to d

2017-10-13 19:20:28 268

原创 T - Space Elevator poj-2392(多重背包)

点击打开链接题意:给n个三元组,每个由三个数组成,第一个是每个积木高度,第二个是当前层以下积木高度允许的最大值,第三个是积木数目,求搭建的最大高度。思路:让最小的允许高度处在最低处,依次向上搭建。use数组表示这种积木已经用了多少块,dp[j]表示:当高度为j时,有没有符合条件的搭建情况,dp[j-a[i].h]其实表示上一块积木有没有被用到,那么最终答案就是,最大的j了。#inc

2017-10-12 21:47:04 188

原创 poj 1065 Wooden Sticks (求最长非降子序列的个数)

点击打开链接题意:n根木材长l_i重w_i,前一根木材大于后一根的话要浪费一分钟准备机器,求最省方案?思路:首先会想到求得是最长非降子序列的个数,那么如何实现,似乎没有足够巧妙地方案,细心观察数据就能得出这样的结论:先对l按从小到大的顺序 排序,然后得到的序列中w的最长递减子序列的长度就是答案。 #include#include#include#include#inclu

2017-10-08 09:41:55 272

原创 poj 3181 P - Dollar Dayz

点击打开链接题意:农夫约翰有N元钱,他花光所有的钱去买东西,市场上有价值1.....k的商品无限多个,求约翰所有的购买方案。思路:dp[i][j]表示前i件物品放进价值为j的背包的情况数是多少,dp[i]j[j]=sigma(dp[i-1][j-k*i])  ,其中k from 0 to j/i;如果j%i==0;那么说明dp[i][j]=dp[0][0]+1;也就是可以全部由第i件物

2017-10-07 11:04:38 168

原创 O - Ant Counting(DP,滚动数组)poj 3046

点击打开链接题意:蚂蚁分为T种家族,一共有A个蚂蚁,问你从S到B个元素的集合会有多少个。思路:dp[i][j]表示前i种家族的蚂蚁,组成成员为j的集合会有多少个;dp[i][j]=dp[i-1][j-k](k from 0 to flag[i],j from k to sigma(0,flaag[i]))//表示去掉k个第i种家族的蚂蚁的集合也就是dp[i][j]表示的集合数;

2017-10-06 20:21:46 213

原创 Cheapest Palindrome POJ - 3280 (区间DP)

点击打开链题意:给出一个字符串,字符串的长度为m,字符串中不同的字符有n种,并且给出添加或删除每个这n种字符的花费,让你求出让这个字符串成为回文串的最小花费。思路:定义状态为dp[i][j]表示从i到j的字符串成为回文串的最小代价,那么最终要求的答案就是dp[0][n-1],这个大区间自然要通过小区间转移而来,重叠的子问题与该问题相同,每个大区间都由小区间转移而来,所以我们自下往上

2017-10-02 15:44:20 168

原创 ACM/ICPC 沈阳网络赛 1004 (nlogn最长上升子序列)

array array arrayTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 612    Accepted Submission(s): 354Problem DescriptionOne day, K

2017-09-12 21:45:37 218

原创 CodeForces - 811C Vladik and Memorable Trip (普通DP)

Vladik often travels by trains. He remembered some of his trips especially well and I would like to tell you about one of these trips:Vladik is at initial train station, and now n people (including

2017-09-09 18:37:28 262 1

原创 D - Naming Company CodeForces - 794C贪心

Oleg the client and Igor the analyst are good friends. However, sometimes they argue over little things. Recently, they started a new company, but they are having trouble finding a name for the compan

2017-09-05 19:18:20 276

原创 E - Toda 2 CodeForces - 730A(简单思维和处理技巧)

A group of n friends enjoys playing popular video game Toda 2. There is a rating system describing skill level of each player, initially the rating of the i-th friend is ri.The friends decided to ta

2017-08-26 11:04:26 310

原创 F - An express train to reveries CodeForces - 814B (简单思维)

Sengoku still remembers the mysterious "colourful meteoroids" she discovered with Lala-chan when they were little. In particular, one of the nights impressed her deeply, giving her the illusion that a

2017-08-25 19:00:41 203

原创 A - Igor and his way to work CodeForces - 793B (D

Woken up by the alarm clock Igor the financial analyst hurried up to the work. He ate his breakfast and sat in his car. Sadly, when he opened his GPS navigator, he found that some of the roads in Bank

2017-08-25 18:49:17 453

原创 POJ - 1080 Human Gene Functions (DP)

Human Gene FunctionsIt is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Biologists have

2017-08-24 09:32:47 168

原创 Lydsy(大视野2017八月份月赛)D--

Problem D: 字符串大师Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 164  Solved: 47[Submit][Status][Discuss]Description一个串T是S的循环节,当且仅当存在正整数k,使得S是T^k(即T重复k次)的前缀,比如abcd是abcdabcdab的循环节。给定一个长度为n的

2017-08-21 20:55:35 586

原创 HYSBZ-1041 数学思维;GCD 的应用

求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。Input只有一个正整数n,nOutput整点个数#includeusing namespace std;#define maxn 2000000000typedef long long ll;int ans;int gcd(int a,int b){ if(b==0) return

2017-08-18 21:15:28 197

原创 HDU3692--least common multiple(数论优化+分组背包);DP--数论

CCPC网络赛开始报名了~ 欢迎参加——阿里云“智慧航空AI大赛”(报名中...) Least common multipleTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 825    Acce

2017-08-11 19:06:49 319

空空如也

空空如也

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

TA关注的人

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