自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(296)

原创 2018计蒜之道第一场 A (二分答案)

题目:https://nanti.jisuanke.com/t/26980#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=20005;ll a[maxn];int main(){ ios_base::sync_with_stdio(false); c...

2018-05-17 17:34:23 188

原创 第十四届华科程序设计竞赛决赛同步赛 K(最大密度子图、最大权闭合子图)

题目:https://www.nowcoder.com/acm/contest/119/K

2018-05-17 16:41:18 81

原创 hdu 1540 Tunnel Warfare (单点更新,区间合并)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1540题意:开始都为,D为破坏一个村子,R为修复最后一个被破坏的村子,Q为查询包括该点的最长连续区间。#include<bits/stdc++.h>#define lson rt<<1,l,mid#define rson rt<<1|1,mid+1,rusing n...

2018-05-16 00:18:10 99

原创 hdu 6273 Master of GCD(线段树区间维护两个最小值)

题目:点击打开链接ppt:http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdfHakase has n numbers in a line. At first, they are all equal to 1. Besides, Hakase is interested inprimes. She will choose ...

2018-05-14 21:50:33 582

原创 2018湘潭大学程序设计竞赛 H (线段树,位运算区间更新,lazy)

题目:https://www.nowcoder.com/acm/contest/105/H思路:和poj2777非常类似,只不过它是某一区间变为某颜色,这里是某一区间加上某颜色。还是可以用sum的某一位来表示有没有这个颜色,然后lazy标记,按位或传递下去。#include <bits/stdc++.h>#define lson rt<<1,l,mid#define r...

2018-05-14 13:31:10 128

原创 Wannafly挑战赛6 D-锁 (状态压缩)

题目:https://www.nowcoder.com/acm/contest/37/D状态压缩的过程就是二进制枚举。这题可以把,恰好差一个人重要度就大于M了,的状态都加起来就是答案。。。。。(根本不明白为啥是这样)官方题解:答案是这样的居民子集个数q:重要度的和不足s,但加入任何一个新居民都将导致重要度的和大于等于s. 必要:由于上面的集合重要度都不够,他们都至少缺一把锁。若不足q把锁,这些子集...

2018-05-13 18:58:13 73

原创 2015 计蒜之道 A. 腾讯手机地图

本来以为扫描线,学习一下怎么求有重叠的扇型面积结果这题可以直接拆成360个1度的扇形。#include<bits/stdc++.h>#define ll long long intusing namespace std;const int maxn=365;const double Pi=acos(-1);int maxr[maxn];int main(){ i...

2018-05-12 21:53:17 62

原创 模板:kmp

//W在T中出现次数char T[maxn],W[maxn]; int next[maxn]; void get_next(int len){ int i=0,j=-1; next[0]=-1; while(i<len){ if(j==-1||W[i]==W[j]){ i++; ...

2018-05-12 14:10:29 83

原创 模板:莫队算法

struct Query{ int l,r,id,block; Query(){} Query(int L,int R,int ID):l(L),r(R),id(ID){ block=l/len; } bool operator <(const Query rhs)const{ if(bloc...

2018-05-12 14:04:58 97

原创 模板:尺取法

二分+尺取//给一个长度为n的数组a,取一个子区间的第k大。//把所有子区间的第k大放入b数组,求b数组的第m大。ll check(int x){ int l=0,r=-1,cnt=0; ll sum=0; while(r<n){ if(cnt<k){ r++; if(a[r...

2018-05-12 14:00:07 89

原创 模板:扫描线

矩形有重叠,求总面积。横纵两条扫描线:#include<bits/stdc++.h> using namespace std; double x[2002],y[2002];//最多100个矩形,所以最多只有200条横线或纵线 double a[1002][4];//矩形实际坐标,分别是左下角横、纵,右下角横、纵bool cover[2002][2002]; c...

2018-05-12 13:52:58 355

原创 2017 南宁网络赛 Overlapping Rectangles (离散化+扫描线/线段树)

题目:https://nanti.jisuanke.com/t/17313题意:确定矩形面积。#include<bits/stdc++.h>using namespace std;double x[2002],y[2002];//最多100个矩形,所以最多只有200条横线或纵线double a[1002][4];//矩形实际坐标bool cover[2002][2002];...

2018-05-10 18:17:59 74

原创 WF 2008 LA 4127 The Sky is the Limit (扫描线)

题目:https://cn.vjudge.net/problem/UVALive-4127// LA4127 The Sky is the Limit// Rujia Liu#include<bits/stdc++.h>using namespace std;const double eps = 1e-10;int dcmp(double x) { if(fabs(x)...

2018-05-10 12:31:21 114

原创 Codeforces #478 D Ghosts

题目:http://codeforces.com/contest/975/problem/D题意:给你一条直线,给你直线上的几个点及其方向,构成几个向量。问你这几个向量上的直线相交几次,结果乘以2.思路:分析发现,就是求这个点构成的直线与之前直线的相交次数,即斜率(方向)不相等的直线数。sync_with_stdio这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了st...

2018-05-09 20:29:16 77

原创 模板:miller-rabin素数测试(哥德巴赫猜想)

含卡迈尔数:#include<bits/stdc++.h>#define ll unsigned long long intusing namespace std;ll ModMul(ll a,ll b,ll n){//快速积取模 a*b%n ll ans=0; while(b){ if(b&1) ans=(ans+a)%...

2018-05-05 14:14:51 80

原创 2018宁夏网络赛 B Goldbach(miller-rabin素数测试(含卡迈尔克数))

题目:https://nanti.jisuanke.com/t/25985题意:让你求出符合哥德巴赫猜想的任意两个加数。思路:数太大,用miller-rabin素数测试。#include<bits/stdc++.h>#define ll unsigned long long intusing namespace std;ll ModMul(ll a,ll b,ll n){//快...

2018-05-05 14:12:48 325 4

原创 hdu 5922 Minimum’s Revenge

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5922题意:两点的边的权值是两个点的最小公倍数。求一颗最小生成树,使累加权值最小。思路:推一推,显然是从2加到n,带入累加公式即可。#include<bits/stdc++.h>#define ll long long intusing namespace std;int main(){...

2018-05-04 22:17:07 65

原创 长安大学第三届ACM-ICPC程序设计竞赛 J (费用流)

题目:https://www.nowcoder.com/acm/contest/102/G题意:

2018-05-03 22:22:01 96

原创 bzoj 2743 采花 离线+树状数组

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2743题意:求给定区间内数量大于1的数有几个。思路是用树状数组,从前一个与这个数相同的数的位置pos处开始+1,再前面的位置就-1,随着区间右端点扩大,右移pos。#include<bits/stdc++.h>using namespace std;const int maxn...

2018-05-03 21:37:52 59

原创 bzoj 1878 离线+树状数组/主席树(区间不同数个数)

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878题意:求给定区间内不同数的个数。之前详细用主席树解过,现在主要练习下离线做法(好写并且很快)比莫队好一点的方法是树状数组last记录该数之前出现的位置。将询问按右端点排序。i表示右端点,不断右移,前缀和记录有多少数,询问按下标往后移,与i相同时查询一下。#include<bits/...

2018-05-01 00:39:06 154

原创 模板:主席树

求区间不同数的个数:/*51 1 2 1 331 5 (3)2 4 (2)3 5 (3)*/#include<bits/stdc++.h>#define ll long long intusing namespace std;const int maxn=2e5+10;const int maxm=1e6+10;ll read(){    ll x=0,f=...

2018-04-30 19:15:03 45

转载 hdu 5919 Sequence II (主席树:求区间内不同数和第k大)

题目:点击打开链接题意:给出n个数,后面每行两个数,根据那个公式生成一个区间,这个区间有k个不同的数,按这些数第一次出现的位置排序,求第k/2大。尝试练习写主席树,不过太难写了。但思路比较好懂,就是前两个题的结合,只不过要从后开始建树,这样最前面那颗就留下了。转自:https://www.cnblogs.com/zhangchengc919/p/5933529.html#include<bi...

2018-04-30 19:02:25 72

原创 SPOJ DQUERY - D-query 主席树 (求区间不同数的个数模板)/ 树状数组

题目:点击打开链接题意:给出n个数,给出q个询问,问你区间内不同数的个数是多少。主席树:主席树就是用一颗模拟的线段树控制往左右走,加的是主席树上存的东西。pre表示前一个数出现的位置,为了找到pre还要用last记录某数最后出现的位置。跟求第k大很像,求第k大存的是区间内的数量,对应线段树的叶子结点是离散化后的a[i],而这里变成了pre[i],l到r的不同数的数量只需要求区间中pre[i]&lt...

2018-04-30 18:03:41 76

转载 2018年湘潭大学程序设计竞赛 D (斐波那契+前缀和)

看到了一个非常优秀的代码。特地做一下笔记。这个题意好理解,就是斐波那契的第几个数第几位就赋为1,左移就行<<1然后保证最小,大佬用了一个巧妙的前缀和,选他前一位的前缀和,小于n就加上这位,说明不加不行了。也就是说如果前缀和能得到这个数,就坚决不选该数。保证了尽量选前面的。#include<bits/stdc++.h>#define maxn 57#define ll l...

2018-04-28 13:36:17 289

原创 长安大学第三届ACM-ICPC程序设计竞赛 D (莫队算法/主席树)

题目:点击打开链接题意:这些人站一列,有一些人是一队的,给一个区间,问这个区间站了多少队。和C题放在一起,就发现莫队和尺取非常像了,只不过询问太多时,尺取就不够优秀了,需要对块排下序离线处理。这个就思路就莫队处理,符合条件就ans++,提前用并查集处理下。然后就是一些写法问题:挪动区间时(尺取),我们始终认为所有的r,l在上一轮都已经处理过了。所以,查询区间外头的先减减,因为num数组在上轮加进去...

2018-04-23 22:41:16 79

原创 poj 2739 Sum of Consecutive Prime Numbers(素数打表,尺取)

题目:点击打开链接题意:从素数表中找一段区间使区间和等于n,输出这样的区间数。#include<iostream>#include<map>#include<set>#include<cstring>#include<cmath>using namespace std;typedef long long ll;const i...

2018-04-23 00:17:51 67

原创 poj 3320 Jessica's Reading Problem(尺取)

题目:http://poj.org/problem?id=3320题意:有n本数,要求子序列拥有全部种类数,求最短子序列长度。思路:尺取,set判断共有多少种,map记录还有没有这本书。#include<iostream>#include<map>#include<set>#include<cstring>#include<cmath&...

2018-04-22 23:11:23 62

原创 poj 3061 Subsequence (尺取)

题目:点击打开链接题意:子序列加起来大于s,求最小子序列长度。#include<iostream>using namespace std;typedef long long ll;const int maxn=1e5+30;const int inf=0x3f3f3f3f;int a[maxn],b[maxn];int main(){ int t; cin...

2018-04-20 17:12:23 52

原创 长安大学第三届ACM-ICPC程序设计竞赛 C (二分+尺取)

题目:点击打开链接题意:有很多子区间,问你子区间第二大取出来,组成数组的第k大是多少。和hdu 6231 一样。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+30;int a[maxn],b[maxn];ll n,k;ll check(int x){ ...

2018-04-20 15:39:55 84

原创 hdu 6231 K-th Number(二分+尺取)

题目:点击打开链接题意:给一个长度为n的数组a,取一个子区间的第k大,区间长度小于k的区间忽略。把所有子区间的第k大放入b数组(可以重复放,所以b数组要比a数组大很多,所以不是要真的去模拟),求这个b数组的第m大。思路:显然答案是数组a中的一个数。所以可以把a全放到b中然后排序,二分查找答案。这个答案可以判断一下(尺取法):答案设为x,cnt表示区间 [ l, r ]内大于等于x的个数。当cnt&...

2018-04-20 15:11:25 100

原创 模板:Simpson求积分

Simpson公式:const double eps=1e-6;double simpson(double a,double b){ double c=a+(b-a)/2; return (f(a)+4*f(c)+f(b))*(b-a)/6;}double asr(double a,double b,double eps,double A){ double c=a...

2018-04-18 20:28:11 173

转载 hdu 1724 Ellipse(辛普森公式)

题目:点击打开链接辛普森公式:C为斯科特系数。证明:知乎上看过一种方法,simpson其实就是用抛物线逼近,把f(x)设为抛物线,对抛物线求积分,整理就整理成上式。所以对于2次方的函数,精度是足够的,但事实上,它具有三阶代数精度。代码实现是使用Simpson对两端求积分,再分成两段求积分,差值足够小就返回,否则一直分段。#include<bits/stdc++.h>using nam...

2018-04-18 20:26:02 139

原创 长安大学第三届ACM-ICPC程序设计竞赛 H(01背包)

题目:点击打开链接#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;const int inf=0x3f3f3f3f;int a[maxn],b[maxn],dp[maxn],tmp[maxn];int main(){ int t,n,m; cin>>t; ...

2018-04-17 21:20:05 86

原创 埃森哲杯金马五校赛 L . K序列(dp)

链接:https://www.nowcoder.com/acm/contest/91/L来源:牛客网题目描述给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列。 输入描述:第一行为两个整数 n, K, 以空格分隔,第二行为 n 个整数,表示 a[1] ∼ a[n],1 ≤ n ≤ 10...

2018-04-17 19:39:04 108

转载 蓝桥杯 PREV-40 k倍区间(前缀和)

题目:点击打开链接思路:转自:点击打开链接 and 点击打开链接利用前缀和解决,别人是老生常谈的题,我又是第一次见。#include <bits/stdc++.h>using namespace std;typedef long long ll;ll bk[100010] = {0};ll arr[1000010];int main(){ int n,k; ...

2018-03-30 22:55:24 114

原创 hdu 1272 小希的迷宫(并查集判断回路和是否连通)

题目:点击打开链接思路:用并查集,判断是否有回路和是否全部连通。空树(0 0)输出yes。判断回路:等等,其实没必要一定让大的作为父结点,连在一起就行,判断如果有相同父节点,说明有回路。#include<bits/stdc++.h>#define ll long long intusing namespace std;const int N=100010;int h[N];...

2018-03-30 18:27:24 268

原创 蓝桥杯 PREV-37 分巧克力(二分答案)

题目:点击打开链接思路:显然答案就是从1到100000挨个试就对了,所以可以二分查找答案。87分时r写成了maxx,应该是maxx+1,否则最大是maxx时,这个数据处理不上。#include<bits/stdc++.h>using namespace std;const int maxn=100005;int h[maxn],w[maxn],n,k,maxx;bool o...

2018-03-30 11:38:16 93

原创 蓝桥杯 PREV-36 包子凑数(完全背包+gcd定理)

题目:思路:又学了一个定理:如果所有数的最大公约数不为1,则他们无法组成的数有无穷个;反之,则有有限个。然后完全背包,把背包容量写大点就行。别chai,一完全背包就方案数,这么大容易超int,赋为1就行了。#include<bits/stdc++.h>#define ll long long intusing namespace std;const int N=100010; ...

2018-03-29 17:31:04 120

原创 蓝桥杯 PREV-39日期问题(set的迭代器应用)

题目:点击打开链接思路:模拟一下即可,把符合条件的插入set,要用set对插入的结构体自动排序就要在结构体里重载<运算符,输出函数也写在结构体里,用迭代器输出。要实现去重,还要写构造函数自动赋值和判断是否合法。但我没不太会那么写,发现不能判重后手动写了一个很蠢的方式。然后发现set的iterator it不能it-1,于是就很蠢的先--再++。然后还发现蓝桥不能用auto。#include&...

2018-03-29 16:06:32 107

原创 蓝桥杯 核桃的数量 (最小公倍数)

历届试题 核桃的数量  时间限制:1.0s   内存限制:256.0MB      问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个...

2018-03-29 11:19:16 244

空空如也

空空如也

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