自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SDUT暑假集训个人赛2补题

题目:Equilateral Triangles题意:给你一个边长为n的等边三角形,求一共有多少对点使得从三角形中选择一个不同于这两个点的点C使得点C在两点构成的直线上思路:首先把等边三角形转化为等腰直角三角形(点与点之间的联通关系不变),然后暴力存储每一个点的坐标,再暴力求两个点之间坐标差的GCD,如果GCD>1,则结果+1.(如果两个点的坐标差的GCD大于1,则一定可以找到至少一个点在两点的直线上)代码:#include<bits/stdc++.h>using namespa

2021-07-27 21:13:33 270 1

原创 SDUT 2021 Spring Team Contest(for 20) - 15补题

(东北地区联赛题目)D题:lowbit题目链接题意:给定一个长度为n的序列,对于这个序列进行m次操作。操作分为两种:第一种操作为对于区间[L,R][L,R][L,R],对于区间里的每一个数字aia_iai​,都加上lowbit(ai)\text{lowbit}(a_i)lowbit(ai​) 第二种操作为求区间[L,R][L,R][L,R]中所有元素的和。思路:当一个数字足够大的时候,它的二进制数字会变成100000000…这个时候它的lowbit返回的是它本身,所以如果一个区间的所有的数字都满足

2021-06-20 15:44:37 393

原创 Codeforces Global Round 14 补题

A题思路:首先判断这些数的和是否为和m的大小关系,如果sum<m直接输出,如果sum=m,输出NO,如果sum>m,从头遍历一遍,如果中间有sum=m,交换这一项与下一项的值.#include<bits/stdc++.h>using namespace std;const int N=1e4+10;int a[N];int main(){ int t; cin>>t; while(t--) { int n,m

2021-05-03 10:14:05 282

原创 SDUT 2021 Spring Individual Contest(for 20) - 13 补题

E题:clipsing Star思路:最后一个点先手肯定拿全部,因此无论上一轮操作如何,最后一轮的后手一定得到上一轮的所有,所以他们的差始终是后一个减去前一个。#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int a[N];int read() { int x = 0, f = 1; char c = getchar(); while (c < '0' || c > '9

2021-04-30 19:42:57 369 2

原创 SDUT 2021 Spring Individual Contest(for 20) - 12 补题

H题Genta Game题意:首先给定n和m,n为字符串长度,接着给定字符串,m次操作,问m次操作中有多少次会出现回文串思路:因为给的数据范围是1e5,所以时间复杂度应该控制在O(nlogn)以内。首先先把给定的字符串预处理一下,查询字符串中有多少个不回文的部分,之后的每一次操作中,操作结束时判断不回文的部分是否为0,如果是,结果加一。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;char a[N];in

2021-04-03 19:35:14 3233 5

原创 SDUT 2021 Spring Individual Contest(for 20) - 11 补题

B题Bonuses on a Line思路:四种情况:只往左走,只往右走,先向右走再向左走,先向左走再向右走。枚举每种情况的最大值,还要判断0处是否有,如果有最大值+1,如果没有,输出最大值#include<bits/stdc++.h>using namespace std;const int N=2e5+10;typedef long long ll;ll pos[N];ll neg[N];ll p1=0;ll p2=0;int main(){ ios::sync

2021-03-31 20:00:52 2289 2

原创 SDUT 2021 Spring Individual Contest(for 20) - 10 补题

B题Minimal Area题意:给你一个严格多边形面积的每一个点,让你求任意三个点组成的三角形的面积的最小值思路:由题意知道相邻三个点组成的三角形面积最小,因此我们遍历所有的可能求得最小值,已知三个点求三角形面积公式为S = 1/2 * |(x2 - x1) * (y3-y1) - (y2 - y1) * (x3 - x1)|#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5

2021-03-29 19:11:24 203

原创 SDUT 2021 Spring Individual Contest(for 20) - 8 补题

A题Large Summation思路:找出与第i个数相加最接近1e9+6的数,且这个数不能是第i个#include<bits/stdc++.h>#define ll long long using namespace std;const int N=1e5+10;const int mod=1e9+7;pair<ll,int>a[N];int t,n;ll ans[N];int main(){ ios::sync_with_stdio(false);

2021-03-21 19:56:40 259

原创 SDUT 2021 Spring Individual Contest(for 20) - 7 补题

A题A. Zero Array思路:每次询问如果是1按照要求修改数组,如果是2则求出让数组变成0数组最少需要的操作数。让数组变成0数组就是统计有多少个不同的数,对于同一个数它的数量则没什么意义,第一个坑是输入的数字可以是0,如果是0的话就不用统计在内。对于每一次1的操作都需要重新统计有多少种不同的数字,如果用数组来存的话一定会超时,所以我们这里用一个map。第二个坑是如果用cincout的话要加上快读,否则会超时。#include<bits/stdc++.h>using namespace

2021-03-17 20:04:16 254 2

原创 SDUT 2021 Spring Individual Contest(for 20) - 3补题

题意: 给三个长度为10的二进制字符串,对其中一个字符串里面的数字你可以随意调动,求字符串进行异或处理,求可以得到的最大值1 ^ 1 ^ 1=1,1 ^ 0 ^ 0=1.只有这两种能得到1。因为要求取得的值尽可能的大一些,所以我们尽可能的将1排到前面,因为我们要得到更多的1。所以我们先用1 0 0组合,如果不能用1 0 0 再看能否用1 1 1,若都不能,则该位置是0。#include<bits/stdc++.h>using namespace std;struct node{ .

2021-03-07 19:48:12 2457 5

原创 SDUT 2021 Spring Individual Contest(for 20) - 2补题

按照题意,总线段包括垂直线段水平线段和斜线,垂直线段和水平线段的判断方式一样,斜线判断方式是只要是满足垂直线段和水平线段都符合要求的长方形的斜线都满足要求。垂直水平的判断方式是看一条线上可以分出多少条长度为偶数的线段#include<bits/stdc++.h>using namespace std;int main(){ long long n,m,ln=0,lm=0,tmp,ans=0; cin>>n>>m; for(int i=2;.

2021-03-07 19:05:03 190

原创 SDUT 2021 Spring Individual Contest(for 20) - 1补题

Competitive Seagulls对称博弈,首先无论长度是奇数还是偶数,我们可以取2或3使得左右两边变为等长的长度,之后后手怎么操作,我们进行同样的操作,这样我们是稳赢。但是对于n=2和n=3这两种情况我们是必输的,所以我们只需要判断n是否为2或3即可。#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) {

2021-03-03 19:34:53 364 3

原创 AcWing-3257.跳一跳.

近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。如果跳到了方块上,但没有跳到方块的中心则获得 1 分;跳到方块中心时,若上一次的得分为 1 分或这是本局游戏的第一次跳跃则此次得分为 2 分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将 +2,+4,+6,+8…)。现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。输入格式输入包含多个数字,用空格分隔,每个数

2021-02-21 21:39:25 177 2

原创 AcWing-3227.折点计数.

给定 n 个整数表示一个商店连续 n 天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第 3 天和第 6 天是折点。给定 n 个整数 a1,a2,…,an 表示销售量,请计算出这些天总共有多少个折点。为了减少歧义,我们给定的数据保证:在这 n 天中相邻两天的销售量总是不同的,即 ai−1≠ai。注意,如果两天不相邻,销售量可能相同。输入格式输入的第一行包含一个整数 n。

2021-02-20 21:09:09 124 1

原创 AcWing-3232.最大波动.

小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。输入格式输入的第一行包含了一个整数 n,表示小明拿到的收盘价格的连续天数。第二行包含 n 个正整数,依次表示每天的收盘价格。输出格式输出一个整数,表示这只股票这 n 天中的最大波动值。数据范围对于所有评测用例,2≤n≤1000。股票每一天的价格为 1 到 10000 之间的整数。输入样例:62 5 5

2021-02-19 21:39:08 117 1

原创 Codeforces Round #703 (Div. 2)-A题

因为题目问的是能否构成严格递增,从前往后模拟,令第i个堆的高度为hi,因为只能从前一个抽出来给后一个,所以如果中途中有构不成相应高度的情况直接break#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--){ int n; cin>>n; long long h[150]; ..

2021-02-19 14:48:25 2065 6

原创 AcWing-3203.画图.

在一个定义了直角坐标系的纸上,画一个 (x1,y1) 到 (x2,y2) 的矩形指将横坐标范围从 x1 到 x2,纵坐标范围从 y1 到 y2 之间的区域涂上颜色。下图给出了一个画了两个矩形的例子。第一个矩形是 (1,1) 到 (4,4),用绿色和紫色表示。第二个矩形是 (2,3) 到 (6,5),用蓝色和紫色表示。图中,一共有 15 个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。给出所有

2021-02-17 16:18:13 145

原创 Codeforces Round #702 (Div. 3)-A题

如果相邻两数字大的比上小的大于2,就要插进去至少一个数字,因为比例最大为2,贪心的思想插入进去的数字是最小值的两倍,再判断新插入的数字和大的比较,如果不符合,重复上一步。#include<bits/stdc++.h>using namespace std;int n;int a[55];int main(){ int t; cin>>t; while(t--) { int res=0; cin>>n; for(int i=0;i<..

2021-02-17 15:30:32 192 2

原创 AcWing-1477.拼写正确.

给定一个非负整数 N,你的任务是计算 N 的所有数字的总和,并以英语输出总和的每个数字。输入格式共一行,包含一个整数 N。输出格式共一行,用英语输出总和的每个数字,单词之间用空格隔开。数据范围输入样例12345输出样例:one five模拟#include<bits/stdc++.h>#include<string>using namespace std;string arr[10]={"zero","one","two","three","four",

2021-02-15 21:37:56 2062 2

原创 差分

一维差分https://www.acwing.com/problem/content/799/#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int n,m;int a[N],b[N];void insert(int l,int r,int c){ b[l]+=c; b[r+1]-=c;}int main(){ a[0]=0; cin>>n>>m; for(int

2021-02-14 20:24:12 278

原创 AcWing-445.数字反转.

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。输入格式输入共1行,1个整数N。输出格式输出共1行,1个整数表示反转后的新数。数据范围输入样例:123输出样例:321输入样例:-380输出样例:-83首先判断是不是负数,如果是负数转化成正数。判断前导0#include<bits/stdc++.h>using namespace std;typedef long l

2021-02-14 19:36:39 158

原创 AcWing-449.质因数分解.

已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。输入格式输入只有一行,包含一个正整数n。输出格式输出只有一行,包含一个正整数p,即较大的那个质数。数据范围6≤n≤2∗109输入样例:21输出样例7模拟过程枚举即可#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; for(int i=2;i<n/2;i++) { int a=i; int

2021-02-14 09:35:59 141

原创 AcWing-441.数字统计.

请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次。输入格式输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。输出格式输出共 1 行,表示数字 2 出现的次数。数据范围1≤L≤R≤10000输入样例:2 22输出样例6枚举判断每个数的每个位

2021-02-12 19:27:00 159 2

原创 高精度

加法#include<bits/stdc++.h>using namespace std;vector<int> add(vector<int> &a,vector<int> &b){ vector<int > c; int t=0; for(int i=0;i<a.size() ||i<b.size();i++) { if(i<a.size()) t+=a[i]; if(i<b.

2021-02-12 16:34:24 2004 2

原创 AcWing-458.比例简化.

在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有1498人,反对的有902人,那么赞同与反对的比例可以简单的记为1498:902。不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。因为这个比例的数值太大,难以一眼看出它们的关系。对于上面这个例子,如果把比例记为5:3,虽然与真实结果有一定的误差,但依然能够较为准确地反映调查结果,同时也显得比较直观。现给出支持人数A,反对人数B,以及一个上限L,请你将A:B化简为A′:B′,要求在A′和B′

2021-02-11 21:26:08 134

原创 整形二分查找模板

版本1当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1。int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } return l;}

2021-02-09 20:35:42 122

原创 AcWing-425. 明明的随机数.

明明想在学校中请一些同学一起做一项问卷调查。为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式输出文件也是2行,第1行为1个正整数M,表示不相同的随机数的个数

2021-02-09 18:54:08 152

原创 归并排序模板

#include<iostream> using namespace std;const int N=1e5+10;int a[N],tmp[N];void _sort(int q[],int l,int r){ if(l>=r) return ; int mid=l+r>>1; _sort(q,l,mid); _sort(q,mid+1,r); int k=0; int i=l; int j=mid+1; while(i<=mid&&

2021-02-09 09:41:51 156

原创 AcWing-417.不高兴的津津.

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入格式输入文件包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和

2021-02-09 09:08:59 130

原创 Codeforces Round #700 (Div. 2)-AB题

贪心题,奇数位的字符取可以取的最小,偶数位的字符取可以取的最大。特别当奇数位为a,偶数位位z的时候,因为可取范围内的最小为b,最大为y,其余的奇数位改成a,偶数位改成z#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(0); int t; cin>>t; while(t--) { char s[55]; cin>&..

2021-02-08 11:13:59 2558 4

原创 AcWing-421.陶陶摘苹果.

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。输入格式输入文件包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第

2021-02-07 20:14:03 159

原创 AcWing-428.数列.

给定一个正整数k,把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,…该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k=3,N=100,正确答案应该是981。输入格式输入文件只有1行,为2个正整数,用一个空格隔开:k N。输出格式输出文件为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1∗10

2021-02-06 21:45:31 186 2

原创 Codeforces Round #699 (Div. 2)-AB题

A.Space Navigation这题是找范围,看向某一个方向的最大距离为多少,如果终点即在左右区间内,又在上下区间内,则通过修改S可以到达,否则无法到达。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int main(){ ios::sync_with_stdio(false); cin.tie(0); in...

2021-02-06 09:05:28 2589 2

原创 AcWing-680.减绳子.

有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第 i 根绳子的长度。输出格式输出一个数字,表示裁剪后最长的长度,保留两位小数。数据范围1≤N,M≤100000 ,0<Li<109输入样例3 43 5 4输出样例2.50样例解释第一根和第三根分别裁剪出一根2

2021-02-05 20:02:00 1064 1

原创 AcWing-433.ISBN号码

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。识别码的计算方法如下:首位数字乘以1加上次位数字乘以2…以

2021-02-05 19:41:55 146

原创 AcWing-89.a^b.

求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b≤1091≤p≤109输入样例:3 2 7输出样例:2快速幂#include<iostream>using namespace std;long long Pow(long long a,long long b,long long c){ long long res=1; while(b) { i

2021-02-04 19:55:29 151

原创 AcWing-1101.献给阿尔吉侬的花束。

阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1 个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。输入

2021-02-03 21:52:39 154

原创 AcWing-703.数独检查.

数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。1.png2.png给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2的每个数字,每个数字一次。每列包含从1到N2的每个数字,每个数字一次。将N2∗N2矩阵划分为N2个非重叠N∗N子矩阵。 每个子矩阵包含从1到N2的每个数字,每个

2021-02-02 22:08:41 134

原创 AcWing-126.最大的和.

给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2其最大子矩形为:9 2-4 1-1 8它拥有最大和15。输入格式输入中将包含一个N*N的整数数组。第一行只输入一个整数N,表示方形二维数组的大小。从第二行开始,输入由空格和换行符隔开的N2个整数,它们即为二维数组中的

2021-01-31 22:04:12 140 2

原创 迪杰斯特拉算法模板

void dj(int n){ int k; for(int i=1;i<=n;i++) { dist[i]=mmap[1][i];//从点1到点i的距离 } v[1]=1;//走到1点 dist[1]=0;//原点到原点的距离为0 for(int i=1;i<=n;i++) { mmin=INF;//无限大 k=0; for(int j=1;j<=n;j++)//距离点i最近的可以到达的点 { if(!v[j]&&dis

2021-01-29 21:00:35 225

空空如也

空空如也

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

TA关注的人

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