自定义博客皮肤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 164

原创 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 120

原创 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 173

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

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

2020-10-04 10:42:48 149

原创 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 128

原创 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 132

原创 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 164

原创 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 188

原创 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 1000000 using namespace std; bool is_primes[MAXN];//判断质数 int primes[MAXN];//质数数组,从1开

2020-10-03 14:15:40 125

原创 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 117

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

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

2020-10-03 13:19:06 156

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

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

2020-10-03 10:21:28 139

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

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

2020-10-03 09:42:25 175

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

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

2020-10-02 22:09:23 133

原创 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 181

原创 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 124

原创 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 197

原创 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 120

原创 poj3299 Humidex(公式直接算)

水题 有一丢丢技巧的输入,再带上三个个公式的计算 代码思路和格式蛮漂亮的,可以借鉴 #include<iostream> #include<cmath> #define exp 2.718281828 using 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 337

空空如也

空空如也

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

TA关注的人

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