自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CF

510 2C#include<bits/stdc++.h>using namespace std;const int maxn=2e5+5;const int inf=1e9+5;int n,a[maxn],cnt;vector<int>vec; int main(){ cin>>n; for(int i=1; i<=n;...

2018-10-24 18:07:43 130

原创 CF

能否将给出的多元集合划分成两个集合,使得每个集合中,只出现了一次的元素的个数相等。#include <bits/stdc++.h>#define N 105using namespace std;int s[N],des[N];char ans[N];map<int,int> mp;vector<int> three,one;int main()...

2018-10-24 18:04:41 234

原创 CF

517 B#include #include #include #include using namespace std;int f[5][5][5];int n,a[100006],b[100006],ans[100006];bool check(){for(int i=2;i<=n;i++){ans[i]=f[a[i]][b[i]][ans[i-1]];if(a...

2018-10-24 18:02:52 163

原创 cf 517 div2A

#includeusing namespace std;const int N=1e5+5;int a[N];int b[N];int c[N];int n;int f;int main(){cin>>n;for(int i=1;i<n;i++)cin>>a[i];for(int i=1;i<n;i++)cin>>b[i]...

2018-10-24 18:01:19 128

原创 泛型的限制

1.泛型类型参数不能创建实例 例如 E oE = new E(); java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件2.泛型类型参数不能创建数组,泛型类不能创建数组 例如 E[] oE = new E[10]; ArrayList[] list = new ArrayList[10]; 防止破坏类型

2017-02-25 16:17:05 345

原创 387 div2 cf 4

C 题意: 有n个服务器 1 ~n 有m个任务,t代表任务开始的时间,k代表任务要占用的服务器数量,d代表占用时间。 m<=1e5 每个任务占用服务器时会选择使用编号最小的服务器 输出每个任务占用的服务器编号总和,没有则-1暴力模拟就好了。=_=虽然感觉会T。。但是试着交了发struct TASK { int t, k, d;} task[maxn];set<int>S;se

2016-12-20 00:30:30 279

原创 386 div2 cf 3

一行上有0-s个点,列车直走到尽头转向,人要从起点x1走到终点x2,列车速度是t1 s/m,人的速度是t2 s/m,列车在p点,d=1代表方向向右,d=-1向左模拟=_=但是模拟的太痛苦过后看到一个暴力模拟的感觉不错。。C. cin>>s>>x1>>x2>>t1>>t2>>p>>d; int ans = abs(x1-x2)*t2; if(t1>=t2) cout<<ans<<

2016-12-19 00:59:21 314

原创 385 div2 cf 2

感觉什么都要练。。。就算有思路写起来都要花好长时间。。A.求循环节,n<=50 =_=暴力我都能写这么长…心累#include <set>#include <cstring>#include <algorithm>#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <stack>#

2016-12-18 23:41:58 530

原创 382 Div 2 cf 1

B.贪心下,去掉最小的n - n1 - n2个,对剩下的求 sum1/n1 + sum2/n2,(n1 > n2 &&sum1 < sum2)答案最大 C.研究下就是斐波那契#include <set>#include <cstring>#include <algorithm>#include <iostream>#include <cstdio>#include <cmath>#i

2016-12-16 23:23:16 322

原创 cf round 384 div2 E,二分 + 状压DP

题意 给一个长度为n的序列,且每个元素在[1,8]之间, 要求找出一个子序列满足 1.子序列的相同元素要连续 2.子序列每个元素出现的次数之差不超过1求出满足要求的最长的子序列长度题解: 首先 假设存在一个子序列满足[1,8]中有的数字出现次数是len,这样的数字有b个,剩下(8-b)个数字的出现次数是len - 1,那么这个子序列的长度是d2 = len * b + (8 - b)*(

2016-12-16 17:50:29 333

原创 日常补

D 维空间里有一个关于点的集合 S,集合中的点的第 i 维坐标 ai 满足 1≤ai≤di ,其中 di 是给定的正整数 ,所以 S 中总共有 ∏di 个点。定义一次空间旅行是指,从 (1,1,⋯,1) 开始进行移动,每次移动只能将某一维坐标加 1 、其他维坐标不变,从而走到下一个点,然后继续进行移动,每次移动前也可以选择结束此次旅行。问至少进行多少次空间旅行,才能将 S 中所有的点都访问至少一次

2016-12-12 14:41:00 269

原创 g_2 + g_3

g_2 二分染色 + DP 染色后的题大概就是 先计算出n对数字的和sum 在n对数字中从每一对中选一个数字,然后计算这n个数的和tot 让sum-tot 和tot的差值绝对值最小 这部分可以背包dp和另一种 dp[i][j] = 1表示存在选了前i个数字中差异为j的情况 然后代码中注释写了接下来的操作=_= 注意差值为负数要修正到正数/*poj1112*/#include

2016-12-12 00:53:13 335

原创 我叫标题

给定两个 n 维向量 A =(x1,x2,⋯,xn)和 B =(y1,y2,⋯,yn) ,定义它们的点积为 A ⋅B =∑(1≤i≤n)xi⋅yi对于每个向量,它的每个分量互不相同,而且任意两个分量均可交换位置。求一种交换策略使得 A 与 B 的点积最小,如果有多种满足条件的交换策略,那么还要使得交换总次数最少。请你给出交换后 A⋅B的值及最少的交换次数。输入 第一行包含一个正整数 T ,表

2016-12-10 22:29:58 234

原创 g_1

第一道:限制了路径上的两两点权差之间都要小于等于m,数据小,枚举区间即可 第二道:传递闭包加二分图.. 第三道:拓扑排序…有点坑//POJ 1062 dijk#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#define mp make_pair#d

2016-12-08 21:28:25 369

原创 查询区间小于x的个数,不修改

题意: 给一个长度为n(n<=1e5)的数组 给q个询问,每个询问有l,r,x三个数 每个询问就是查询[l,r]中有多少个<=x的数解法: 先将原数组A排序,并保留原有的下标,排序后的数组为B数组 然后对询问按x从小到大排序 for询问 对每个x暴力处理每一个小于x的B数组元素在原数组A的下标pos,用树状数组对pos+1 这样就说明在pos这个位置有1个小于x的值再进行下区间求和就

2016-12-07 18:41:59 2114

原创 Postcards

题意:从n个人(对人编号1-n)中任意选k个人发他们明信片,但是这其中会有一些关系使得给了某个人i,就必须给某个人j,问发明信片的期望值,答案*C(n,k)T个case 每个case有n,m,k (1 <= n <= 50, m <= 10000, 0 <= k <= n) n代表总共有多少个人,m代表总共有多少种关系,k如题意 接下来m行有u,v两个人,表示如果给了u就必须给v. (1 <=

2016-10-27 08:38:57 380

原创 CF 715B 最短路

给n点m边,L,s,t 修改m条边中边为0的边, 使满足s,t的最短路长度是L,且边为0的边的权值必须在[1,1e18]内做法,1.先做一次假设每条零边都不可经过的最短路,如果dis[t] < L,则是NO 2.再将每条零边修改成1,如果此时dis[t] > L 也是 NO 除了这两种情况,就必有YES,至于为啥,按下面的思路想一下就知道了将第二个操作后的最短路拿出来,对非最短路上的零边都赋

2016-10-19 23:03:08 1054

原创 MDZZ

给一个大小是n,1<=ai<=n的数组,求max(ai%aj,i#include <cstdio>#include <cstring>#include <cmath>#include <queue>#include <vector>#include <string>#include <stack>#include <set>#include <map>#include <iostr

2016-10-14 02:16:56 575

原创 给自己看的NIM

看了下nim,写点东西记录下别以后又忘了 NIM : 通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。(百度百科)先讨论单堆.. sg(x)=mex(sg(y)|x->y) mex就是该集合的补集的最小自然数,例如mex(0,1,3

2016-08-19 21:24:33 256

原创 .

题意: 有n个人在圆桌上吃饭,主人位置固定,给m个关系ki表示第i个人的旁边是第ki个人,问有多少种方式可以排列… 注:这是一个圆桌,所以要分左右两边的… 给你n个人和m个关系 并查集处理下每个联通块,对(全部联通块-1)(因为1号位固定)进行全排列 再对每个元素大于1的联通块进行ans*=2,因为他们可以调转顺序 最后还有个最蛋疼的就是 n==2输出1//URAL 1962#incl

2016-08-07 11:59:53 176

原创

HDU 5806 给一个长度为n的数列,求有多少个区间满足第k大的数大于等于m将不小于m的数看作1,剩下的数看0,那么只要区间内1的个数不小于k则可行,枚举左端点 枚举左端点,遇到右端点满足条件即可ans+=n-右端点+1 复杂度O(nT) 尺取。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>

2016-08-07 11:37:24 171

原创 hourrank 11 LCS Returns

Given two strings, and , find and print the total number of ways to insert a character at any position in string such that the length of the Longest Common Subsequence of characters in the two strings

2016-08-03 19:35:15 202

原创 水题 吧?

给定n个矩形的高,宽恒为1,求最大的矩形面积。 题意看HDU1506=_=不会做.. 搜到一些题解才看懂… 用单调栈维护第i个点往右和往左能扩展到的位置。 单调栈用来解决: 求出距离每个元素左右两端最近且比其小(大)的元素的位置。思路:找到每个点往右扩展第一个比他小的值d[j],这样就能找到第i个点最远能扩展到 j-1这个位置。 同理,也能按这方法往左找。#include <

2016-08-01 01:26:14 171

原创 最近点对 HDU5721

最近点对: 对所有点按照 x坐标排序。然后分治,求出左半边和右半边的最近点对,对于两边的最近距离取较小的,记为 d。取从分治的中间点向左右各距离为 d d的范围中的所有点,把这些点按照 y坐标排序。对于每个点,扫一下与它 y坐标差小于等于 d的点,更新答案,可以证明(证明没看懂=_=)这样的点是很少的,不超过6个。该题题意:给定n个点的坐标,第i个点消失后的最近点对距离为di,求di的和。这

2016-07-26 21:31:44 261

原创 组合数的不同质因子

求组合数C(n,m)有多少个不同的质因子。 C(n,m)=n!/( m!*(n-m)! ) P(N!)=N/i+N/i^2+N/i^3+…..N/i^m是一个可以求N!中有多少个质因子i,例如7!中有4个质因子2,那么P(n!)=4; 既然知道了这个公式,枚举每个质数,分别求n!,m!,(n-m)!的质因子个数是否符合 P(n!)=p(m!)+p( (n-m)! )#include <bit

2016-07-22 21:16:11 645

原创 日常补题

CFR 363 给定一个序列: ai equals 0, if on the i-th day of vacations the gym is closed and the contest is not carried out; ai equals 1, if on the i-th day of vacations the gym is closed, but the contest is

2016-07-20 18:32:40 275

原创 BC,HDU 5719

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;int a[100005],b[100005];const LL mod=998244353;int main(){#ifdef LOCAL f

2016-07-19 18:50:50 194

原创 bitset优化背包...

题目: https://s3.amazonaws.com/codechef_shared/download/translated/SNCKEL16/mandarin/RWALK.pdf 这题可以转化成背包。 L,R什么的可以无视,因为替换他们不用时间。 将竖直方向和左右方向分成两个数组。 分别求出他们的和sum1,sum2。将其转化成背包,看成sum1的背包最多可以选多少个(长度和*2),

2016-07-19 15:24:57 2268

原创 枚举+前缀和...

给一个3*1e5的数字串,判断该串中有多少个子串%64==0,0也算,有前导0的不算 例如 64064 [64]064 64[0]64 640[64] [640]64 [64064] 括号内即为符合条件的子串,064不符合 这题要利用1000000正好整除64,所以x*1000000+P(P的长度小于等于6) 只要P正好整除64,则整个串都整除64 所以

2016-07-17 01:12:28 991

原创 DFS一直写不好啊啊啊

n个数字里必须有连续m个数的和为质数 例如(12,1)就必须由12个质数组成 n<=12,m<=4#include <cstdio>#include <cmath>#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;int ans[30][30],r

2016-06-22 15:59:08 369

原创 文章标题

题意:给一个字符串s,并给定n个变量的长度 5 4 2 4 4 2 例如 s:1bad1=acbe 然后求满足此式子1bbaaaadddd1=aaaaccccbbee 的解有多少种(这些变量只能取0/1)#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>#define DEBUG 1

2016-06-03 23:01:37 240

原创 八皇后

第cur行放置第i列的皇后 c[cur]=i;#include <bits/stdc++.h>using namespace std;typedef long long LL;int c[100],ans=0,n;void dfs(int cur){ if(cur==n+1) { ans++; return ; } for(

2016-06-02 20:33:48 204

原创 文章标题

问第几个非丑数的值…例如第一个是7,第二个是11。#include <cstdio>#include <queue>#include <algorithm>#include <iostream>using namespace std;typedef long long LL;typedef pair<LL,int> PR;int n;LL rep[1530];void init()

2016-06-02 00:15:55 325

原创 文章标题

http://www.cnblogs.com/YY56/p/5452674.html 从这学来的一个新姿势=_= 对原数组val离散化然后对离散化后的数组Hash排序,还要去重。 然后按顺序对原数组val按顺序进行一次Query和update,查找原数组val元素的过程用二分处理Hash。 因为Hash是按顺序排的所以每次Query都是查询1-(x-1)的区间和。 然后当前点的值更新为1-

2016-05-02 20:05:13 245

原创 POJ2253

大致题意就是给定1,2和多个点,问从1到2的每条路径中的最大边的最小的那一条边的值是多少。#include <iostream>#include <queue>#include <cstdio>#include <vector>#include <algorithm>#include <cmath>#include <cstring>#include <set>#define INF

2016-04-22 23:35:32 249

原创 POJ3254 状压dp入门

参考了大神的思路… http://blog.csdn.net/accry/article/details/6607703#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<stack>#include <iostream>const int mod=1e8;using namespac

2016-04-05 21:02:02 278

原创 HDU 5651

居然忘记了高中的组合数公式 在计算组合数取模的过程中很难处理除法。。。 所以要用到C(N,M)=C(N-1,M-1)+C(N-1,M) 从C(1,1)一直递推,就可以避免除法了… 要注意初始化C(i,0)=1;没初始化这个wa了好久…没注意样例都不能过… 在递推求C数组的时候记得取模… 大概的注意事项就这些了吧… 剩下的就是用高中知识解决了…#include<iostream>#in

2016-03-27 01:18:53 515

原创 ...

POJ 3468 线段树的成段更新加延迟标记#include<string.h>#include<iostream>#include<algorithm>#include<stdio.h>using namespace std;typedef long long LL;const int MAXN=111150;struct Node{ int l,r; LL v

2016-03-17 22:44:50 291

原创 HDU1166

线段树入门

2016-03-15 16:49:31 367

空空如也

空空如也

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

TA关注的人

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