自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019ccpc网络赛 HDU 6704 K-th occurrence(后缀数组+RMQ+主席树)

题意:给一个长度为n的字符串s,然后有q个询问,每次询问求出l到r之间的字串在s数组第k次出现的位置;思路:用后缀数组对所有子串进行排序,用二分和RMQ找到包含该子串的排名区间(含公共前缀的字串一定连续,二分左边界和右边界),用权值主席树查找第k次出现的子串的位置即可;#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>

2021-03-06 19:28:47 158

原创 Codeforces Round #698 (Div. 2) C题Nezzar and Symmetric Array

思路:由于每个数正负成对出现,不妨设x为正,对于x与每个数对(不妨设为y,-y)的绝对值差为|x - y| + |x + y|,则-x与每个数对的绝对值差为|-x - y| + |-x + y| = |x + y| + |x - y|,故d数组中每个数都应成对出现;对于|x + y| + |x - y|当x > y时为2x;当y > x时为2y;即|x + y| + |x - y| = 2 * max(x,y);因此di = $\sum_{j=1}^{2n} max(abs(a[i]

2021-01-29 13:59:28 119

原创 卓见杯”2020年河南省第二届CCPC 二进制与、平方和(线段树,二进制

#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<string>#include<cstring>#include<bitset> #include<vector>#include<queue>#include<stack&...

2020-12-15 16:42:11 292 1

原创 2019河南省ccpc大小接近的点对(主席数+离散化+dfs序

#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<string>#include<cstring>#include<bitset> #include<vector>#include<queue>#include<stack&...

2020-12-12 19:01:30 119

原创 2020CCPC河南省赛子串翻转回文串

****注意千万不要用自然溢出哈希,会被卡成**;#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<string>#include<cstring>#include<bitset> #include<vector>#include...

2020-11-28 17:08:56 699 1

原创 2020河南省ccpc省赛太阳轰炸

#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int maxn = 5e6+5;const int mod = 1e9 + 7;typedef long long ll;int n,m,k;ll r1,r2,r,a,h;int pm[maxn],pni[maxn];int jc[maxn]...

2020-11-27 23:45:28 600 2

原创 蚂蚁

1,蚂蚁最终的位置顺序和起始的顺序相同2,最终的位置的的坐标方向和起始的顺序一一对应3,如果最终位置的一个点有两个则表示正在转向#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<string>#include<cstring>#include<bitset&g..

2020-07-08 22:29:44 1189

原创 Pair of Topics

直接将a,b数组相同下标做差得到新的a数组;因为i和j位置可以交换所以,下标可以忽略,将a数组排序然后双指针得到满足的对数#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<string>#include<cstring>#include<bitset> #in..

2020-07-08 22:17:46 168

原创 Ball

把b数组作为a数组排序后的数组。贪心的思想:a数组中的第一个颜色x,排序后会到b数组第一个颜色x(把0也当成一种颜色),因为如果a中的第一个颜色x能到b中的一个x后面的x则一定能到达第一个x。依次类推,把每一个颜色都编号对应到b数组中,记录排序后a数组每个颜色对应到b数组的位置。#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath&..

2020-07-06 17:40:16 150

原创 Read Time (二分

二分时间,最左边的磁盘用最左边的指针去配对,并判断该指针在经过该磁盘的同时最多跑到最右边的位置,如果需要配对的磁盘在指针左边则有两种走法,第一种先向左走到磁盘位置再一直向右走,第二种先向右走然后向左走,正好在时间用完时停在磁盘处,判断两种情况哪种走的最右。如果磁盘在指针右边则一直向右走。#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<s..

2020-07-02 17:04:33 518

原创 C - Mixing Water(注意精度和数据溢出(坑爹题

官方题解:参考题解写的代码:#include <cstdio>#include<cmath> using namespace std; int main() { int tc; scanf("%d", &tc); while(tc--){ int h, c, t; scanf("%d%d%d", &h, &c, &t); if (h + c - 2 * t >= 0) puts("2"); ..

2020-05-30 23:38:53 512

原创 Good Numbers (hard version)

该题数值较大,可以转为三进制用数组保存每个位的数。从最高位往低位遍历,遇到1和0跳过,遇到2说明该数不满足题意,要找到最小的数,应将该位置的2和比该位低的位变成0,然后往高位遍历遇到1将其变为0,直到遇到0,把0变为1即为最小的数。因为遇到2一定需要往高位进位,不然无法消去该位上的2,所以将低位全部清0,找到第一个高位的0变为1即可,因为遇到1进位会变成2依旧需要往高位进位。参考大佬的代码#include<iostream>#include<cstring>usi..

2020-05-28 14:25:45 181

原创 Books Exchange (hard version)(记忆搜索)

给书的过程形成一个循环,每个独立循环内的每个人的书回到自己手中的时间相同#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 2e5+10;int a[maxn],ans[maxn],book[maxn];int dfs(int i,int st){ book[i] = 1; if(book[a[i]]){ ret..

2020-05-28 11:57:19 203

原创 K - s-palindrome(水坑)

坑点:p和q,b和d成镜像,小写m和i不和自身成镜像#include<iostream>#include<cstring>using namespace std;//按ascill码表的顺序对应各自的镜像字母,不成镜像用*表示char st[100] = "A******HI***M*O****TUVWXY********d*b**********oqp****vwx****";char s[2005];char s2[2005];char zhuan...

2020-05-28 11:52:03 154

原创 D. Buying Shovels(最大因子

该题切记循环到根号n,不可循环到根号k#include<iostream>#include<algorithm>#include<cmath> using namespace std; int t,n,k;int main(){ cin >> t; while(t--){ cin >> n >> k; if( n <= k ){ cout << 1 << en...

2020-05-25 11:26:26 429

原创 C - Zero Quantity Maximization(map)

由于浮点数精度有限会出现误差,本题应采用最简分数记录#include<iostream>#include<map>#include<cmath>#include<algorithm>using namespace std;//辗转相除法求最大公因数int f(int x, int y) { return y ? f(y, x % y) : x;}const int maxn = 2e5 + 5;int a[maxn], ...

2020-05-17 17:11:41 200

原创 E - Magic Powder - 2(二分查找)

该题数据量较大,根据题目答案最大2*10^9,可以通过二分法查找最大做的蛋糕数,用魔法素材把每个材料补充到二分的值需要的素材数,判断总共需要的素材数和k的大小关系进行二分#include<iostream>using namespace std;typedef long long ll;//int数据会溢出改用long longconst ll maxn = 2e9+5;ll a[100005],b[100005];ll n,k;ll search(ll l,ll r).

2020-05-16 17:13:56 271

原创 The Child and Set位运算

通过与自身相反数做与运算获得该数的最右的1;#include<iostream>#include<algorithm>using namespace std;struct node{ int num,low;};// num 记录该数,low记录最右的1;int cmp(node a, node b){ return a.low > b.low;}node s[1000000+5];int ans[1000000+5];int main(){.

2020-05-13 09:51:10 292

空空如也

空空如也

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

TA关注的人

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