自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 差分数组

对数组中的一个区间进行同增 / 同减。原数组a[n];差分数组b[n];程序中,对b进行O(2)操作,最后用O(n)将b的操作加入a。由最后一步O(n)for(int i=1;i<=n;i++) a[i]=a[i-1]+b[i];得:b[i]影响a[i]~a[n]所以:若要改a[x]~a[y],操作b[x]和b[y+1]减:b[x]–, b[y+1]++;加:b[x]++, b[y+1]–;...

2020-10-06 17:07:51 156

原创 Codeforces Round #668 (Div. 2) B. Array Cancellation(思维)

加一些小小的优化,可以解决Time limit exceeded#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#includ

2020-10-04 21:23:06 109

原创 Codeforces Round #668 (Div. 2) A. Permutation Forgery (思维)

题目写的非常复杂,其实把数组倒着输一遍就行了#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <stri

2020-10-04 13:02:25 164

原创 Codeforces Round #673 (Div. 2) A. Copy-paste(水题)

水题,没必要看/* ***********************************************┆ ┏┓   ┏┓ ┆┆┏┛┻━━━┛┻┓ ┆┆┃       ┃ ┆┆┃   ━   ┃ ┆┆┃ ┳┛ ┗┳ ┃ ┆┆┃       ┃ ┆┆┃   ┻   ┃ ┆┆┗━┓ 马 ┏━┛ ┆┆  ┃ 勒 ┃  ┆      ┆  ┃ 戈 ┗━━━┓ ┆┆  ┃ 壁     ┣┓┆┆  ┃ 的草泥马  ┏┛┆┆  ┗┓┓┏━┳┓┏┛ ┆┆   ┃┫┫ ┃┫┫ ┆┆

2020-10-04 10:42:48 142

原创 Codeforces Round #673 (Div. 2) B. Two Arrays (思维)

做题前的思考,比盲目写题重要一万倍!!!你盲目写多长时间,就会浪费多长时间!!!题意:给一个两两和为T序列,分为两列,使各列内和为T的数对尽可能少。#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#incl

2020-10-04 10:40:48 121

原创 poj2965 The Pilots Brothers‘ refrigerator (枚举,DFS,回溯)

回溯要写吐了,都没写出来代码里是用DFS的步数num作为ans[num]来存的回溯#include<cstdio>#include<cstring>#include<algorithm>#include<string.h>#include<iostream>#include<cmath>using namespace std;int map[10][10],flag=0,ans;struct bbq{ in

2020-10-03 23:29:37 126

原创 poj1753 Flip Game(枚举,DFS)

题意:一个4*4的围棋棋盘,黑白子随机,每次翻转同时翻转四周的棋子,最少翻转几次使所有棋子同色。代码,非常漂亮的DFS#include <cstdio>#include <iostream>using namespace std;int map[10][10]={0};//考虑到要不断翻转,我们用0和1代表棋盘黑白两种颜色,这样翻转就可以用“非”运算符来代替了int dir[5][2]={{-1,0},{1,0},{0,-1},{0,1},{0,0}};int sum;

2020-10-03 22:17:33 155

原创 poj3094 Quicksum(大水题)

#include<cstring>#include<cstdio>#include<algorithm>using namespace std;char str[300];int sum;int main(){ while(gets(str), str[0] != '#'){ sum = 0; for(int i=0; i < strlen(str); i++) if(str[i] != ' ') sum += (i + 1) *

2020-10-03 21:31:12 180

原创 poj3006 Dirichlet‘s Theorem on Arithmetic Progressions(质数,空间换时间)

题意:一个序列a, a+d,a+2d,……,a+nd;给定a,d,n,找出第n个素数有了之前的经验,直接空间换时间#include<cstdio>#include<string.h>#include<algorithm>#include<cmath>#define MAXN 1000000using namespace std;bool is_primes[MAXN];//判断质数 int primes[MAXN];//质数数组,从1开

2020-10-03 14:15:40 115

原创 poj1503 Integer Inquiry(大数)

用的模板直接贴代码#include <vector>#include <iostream>#include <cstring>#include <iomanip>#include <string>#include <algorithm>using namespace std; //大数struct BigInteger{ static const int BASE = 100000000; //和WID

2020-10-03 14:01:55 108

原创 poj2262 Goldbach‘s Conjecture(质数,空间换时间)

题意:验证哥德巴赫猜想,一个偶数是否能被两个素数相加,如果能输出两者差最大的两个。第一遍的代码,先打一遍质数表,再用双指针法搜(要判断的量太多,超时)没有意识到已经打了bool表,可以直接判断(经验不足)#include<cmath>#include<cstdio>#include<algorithm>#include<iostream>#include<string.h>#define MAXN 1000000using nam

2020-10-03 13:19:06 151

原创 poj1083Moving Tables(思维,样例具有多重欺骗性)

题目大意:如图所示在一条走廊的两侧各有200个房间,现在给定一些成对的房间相互交换桌子,但是走廊每次只能通过一组搬运,也就是说如果两个搬运过程有交叉是不能同时搬运的,要依次来,一次搬运10min,问完成所有的搬运的最少用时。解题思路:考虑每个房间有多少搬运过程需要经过,我们截取最大的房间经过的次数就可以了,挺锻炼思维的一道题。注意:这个思路我第一时间就想到了,但在脑海里过了一遍,觉得漏洞颇多,没有采用。其实应当在纸上画一遍,所谓的漏洞并不存在,只是我思维的死角罢了。此题虽为水题,样例却颇具欺骗性

2020-10-03 10:21:28 135

原创 poj2100 Graveyard Design(尺取法,STL)

**题意:**找到某一个区间使得区间内的数的平方和等于某一给定值k。要用到双重pair,书写的格式得注意思路和poj2739基本一样

2020-10-03 09:42:25 168

原创 poj2566 Bound Found(尺取法:子串和为非单调序列,模板)

题目大意给定一组包含n个整数的数列和k个询问,求取一个子串,使得该***连续子串***的***和的绝对值***最接近t注:暴力求解必定超时解题思路由于要求取一个连续子串的部分和(和为非单调数列,若是单调数列,可不求和,直接算),这让我们想到了记录前缀和sum的方式来在O(1)内求得任意子串的和。对于子串问题的处理,为了避免暴力双重循环,我们往往使用尺取法(双指针法),就像是在字符串匹配问题时的那样。当然,其他的方法(如DP)也经常用来处理子串问题,最经典的有最长上升子序列。在使用双指针法时,要

2020-10-02 22:09:23 128

原创 poj3320 Jessica‘s Reading Problem(尺取法,STL)

程序 = 算法 + 数据结构这道题没那俩STL真没法做(map && set)(映射和集合)此外,本题用cin && cout 会超时!!!以后还是老老实实用 scanf && printf 吧题目的本质还是简单的,就是根据那个模板稍微改了一下#include <iostream>#include <cstdio>#include <algorithm>#include <map>#includ

2020-10-02 17:53:51 173

原创 poj3061 Subsequence(尺取法,模板)

最基本的尺取法尺取无序数列#include<algorithm>#include<iostream>#define INF 0x3f3f3f3f using namespace std;int t, n, s;int a[100005];int main(){ cin>>t; while(t--) { cin>>n>>s; for(int i = 1; i <= n; i++) cin>>a[

2020-10-02 15:18:42 120

原创 poj2739 Sum of Consecutive Prime Numbers(尺取法,质数)

暴力枚举超时了,这个尺取法蛮基础的这个质数的写法可以作为模板,蛮全面的bool is_primes[MAXN];//判断质数 int primes[MAXN];//质数数组,从0开始 int prime_count;//质数数量 void GetPrimes(int n){ int k = 0; memset(is_primes, true, sizeof(is_primes)); for (int i = 2; i <= n; i++){ if

2020-10-02 11:26:05 187

原创 poj2159 Acient Cipher(暴力)

审题出了点问题,思维定式了,每一个字母的密码加减不一定是一样的,题目没说,只不过举例举的这样而已string的头文件出了点问题,cin>>str要用#include(poj上才能过),而memset却要用#include<string.h>(电脑上才能过)#include<iostream>#include<cstdio>#include<string>#include<string.h> #include<algor

2020-10-01 21:25:14 115

原创 poj3299 Humidex(公式直接算)

水题有一丢丢技巧的输入,再带上三个个公式的计算代码思路和格式蛮漂亮的,可以借鉴#include<iostream>#include<cmath>#define exp 2.718281828using namespace std;double geth(double t,double d){ double h,e; e=6.11*pow(exp,5417.7530*((1/273.16)-(1/(d+273.16)))); h=0.5555*(e-10); r

2020-10-01 08:16:14 328

空空如也

空空如也

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

TA关注的人

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