03 2020 档案

摘要:又是一个div3的简单dp 题意 给个链接自行体会 http://codeforces.com/problemset/problem/1324/E 代码 #include<bits/stdc++.h> using namespace std; int dp[2005][2005]; int a[20 阅读全文
posted @ 2020-03-30 13:34 _LH2000 阅读(134) 评论(0) 推荐(0)
摘要:前言 有一说一,这是我做过最简单的一道E题 题意 告诉你有个大楼,然后让你求出从一楼到每一楼的最短时间。其中,上楼有两种方式1.走楼梯2.坐电梯。楼梯可以直接走,电梯需要一个等待时间。数据给出层与层之间不算等待时间的两种方式上楼所需的时间。 做法 很容易想到dp,而且是最基础的dp(估计div3也就 阅读全文
posted @ 2020-03-29 20:43 _LH2000 阅读(204) 评论(1) 推荐(0)
摘要:题目大意 给一个数组,入伙前后两个元素值不同则必须让他们染不同的颜色,问你如何染色能使得使用的颜色种类最少 做法 用贪心的思路,从前往后扫一遍数组按照题目中的规则,如果与前一个元素相同就染同样的颜色,不同就染不一样的,但是只染1,2两种颜色。 由于是个环,最后只需要判断一下最后一个元素是不是和第一个 阅读全文
posted @ 2020-03-27 10:13 _LH2000 阅读(451) 评论(2) 推荐(1)
摘要:http://codeforces.com/contest/1327/problem/C 题意 给你一个图和一堆点,然后问你这一堆点和一堆目标点怎么才能到达这些目标点至少一次。 做法 其实题目已经给你提示了,上面说移动次数不大于2nm。 其实在2nm内就能把图上所有位置遍历一遍。 简单来说就是不管你 阅读全文
posted @ 2020-03-24 12:05 _LH2000 阅读(213) 评论(0) 推荐(0)
摘要:链接https://www.luogu.com.cn/problem/P1879 题目 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。 遗憾的 阅读全文
posted @ 2020-03-21 14:27 _LH2000 阅读(139) 评论(0) 推荐(0)
摘要:主要是想得到p数组 对于p[i]有,以i为中心的回文串起始坐标为(i-p[i])/2;长度为 p[i]-1; #include<iostream> #include<string.h> #include<algorithm> using namespace std; char s[1000]; ch 阅读全文
posted @ 2020-03-20 17:24 _LH2000 阅读(131) 评论(0) 推荐(0)
摘要:链接http://codeforces.com/contest/1326/problem/C 题目大意 给你一个数组,然后让你对他进行分块,具体是分成k块,然后让每一块最大的数的和最大。 做法 那么直接对数组排序,取前k个元素的和就是分块后的最大和了,问题在于如何求分块方案的数量。 这里只需要将原有 阅读全文
posted @ 2020-03-20 01:10 _LH2000 阅读(189) 评论(0) 推荐(0)
摘要:题目大意 链接http://codeforces.com/contest/1326/problem/B 给你一个规则,告诉你一个数组根据这个规则进行变换,具体是什么呢,就是产生的新数组的每一个元素等于原来数组的对应元素减去这个元素前面的所有元素中最大的那个。 做法 又是一道水题,请直接对数组进行操作 阅读全文
posted @ 2020-03-20 01:04 _LH2000 阅读(187) 评论(0) 推荐(0)
摘要:题目大意: 链接 http://codeforces.com/contest/1326/problem/A 让你求一个数,使得这个数的任何位上面的数字都不能整除他。 做法 请直接输出27777777................ QAQ 代码 #include<bits/stdc++.h> usi 阅读全文
posted @ 2020-03-20 00:58 _LH2000 阅读(114) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P2152链接地址 题目大意 这道题就是让算两个非常非常非常非常大的数的最大公约数。如果你一上来就想到了更像减损术,恭喜你拿到了20分,但是剩下的80分就要用到高精度算法了。 代码 #include<bits/stdc++.h> us 阅读全文
posted @ 2020-03-17 16:15 _LH2000 阅读(103) 评论(0) 推荐(0)
摘要:链接 https://www.luogu.com.cn/problem/P2051 记录下第一次过省选难度的题。 题目分析 由题意可知每一列和每一行能同时存在的炮都不能超过2个,否则就会互殴。那么只需要记录每一行有1个炮的列数和有2个炮的列数递推即可。 具体做法 设状态dp[i][j][k]其中i代 阅读全文
posted @ 2020-03-16 22:05 _LH2000 阅读(144) 评论(0) 推荐(0)
摘要:题目大意 给你两个数 u v,要求找出一个数组,里面的元素满足几个条件 元素之和==v 元素之异或==u 做法 三个数: 根据u^0==u 同时知道两个相同的数异或为0 ,可以把0换成(v-u)/2 和 (v-u)/2 ;因此,最多只需要三个数(v-u)/2,(v-u)/2,u; 两个数: 把上边的 阅读全文
posted @ 2020-03-16 12:49 _LH2000 阅读(165) 评论(0) 推荐(0)
摘要:题目链接 http://codeforces.com/contest/1325/problem/C 大意 给一颗树,有 n nn 个顶点,给这个树的边分别编号为 0 (n−2) 0~(n-2)0 (n−2),问怎样编使得对于树上任意两点 u,v u,vu,v 的最大 mex(u,v) mex(u,v 阅读全文
posted @ 2020-03-15 23:33 _LH2000 阅读(236) 评论(0) 推荐(0)
摘要:[ZJOI2007]棋盘制作 题目链接 题目梗概 这是一个提高+难度的题,但是感觉并配不上这个难度,主要想记一种矩形里面求最大子矩形的方法。 这个做法我称之为吊着的dailinzu法。 具体做法 具体来讲就是想象有一条条线吊着dailinzu然后对每个位置对齐,然后分别求出三个方向的线。这样就确定了 阅读全文
posted @ 2020-03-14 20:54 _LH2000 阅读(141) 评论(0) 推荐(0)
摘要:教育场的一道区间dp题; 题目让在相邻两项如果相等则可以合并且++的条件下求最短的区间长度。 可以枚举区间长度,然后再在每个长度下遍历数组。 而对于每一个区间,其最终值等于其子区间值的和。那么就需要遍历每个长度时遍历其子区间。 如果遇到某两个子区间之间经过一系列操作后长度都为1且相等,则可以将他们合 阅读全文
posted @ 2020-03-11 15:46 _LH2000 阅读(134) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/1312/problem/C题目链接 这道题有许多种解法,在此介绍一种类似题都能通用的方法。相信许多人也最想看这种方法。 在介绍之前,先理解一下当k=2时的情况。 k=2,n=23时 有23=2^4+2^2+2^1+2^0; 这个式子能说明 阅读全文
posted @ 2020-03-10 15:24 _LH2000 阅读(162) 评论(0) 推荐(0)
摘要:#include<cstdio>#include<queue>using namespace std;int l[100001],tot,dis[100001],s,n,m;inline int read()//输入优化{ int d=1,f=0;char c; while(c=getchar(), 阅读全文
posted @ 2020-03-09 15:55 _LH2000 阅读(135) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; int main() { while(true) { puts(""); puts(" current file "); system("random.exe"); system("baoli.exe"); 阅读全文
posted @ 2020-03-06 12:00 _LH2000 阅读(93) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/1316/problem/B 题目链接 这题如果用纯模拟的方法做一定是会超时的,所以考虑用不那么暴力的方法,加入一点小技巧 容易看出,题目中当k=2时,其实就是用冒泡法发第一个字母移到最后一位。 那么只需要将首字母放到最后就可以了。 那么问 阅读全文
posted @ 2020-03-05 13:59 _LH2000 阅读(278) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/1305题目链接 昨晚想了一个半小时愣是没想出来,惭愧; 发个博客记录一下; 一看题数据有点大,想到暴力肯定不行,于是开始想dp; 后面发现也不行就开始推数学式子。最后十分钟推出来可以用范德蒙行列式求解,但是没打上去。 今天看了正解发现果然 阅读全文
posted @ 2020-03-04 12:15 _LH2000 阅读(200) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; int n,m; const int INF=0x3f3f3f3f; const int MAXN=110; bool vis[MAXN]; int lowc[MAXN]; int tu[MAXN][MAXN] 阅读全文
posted @ 2020-03-03 20:15 _LH2000 阅读(168) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; const int maxn=1010; const int inf=0x3f3f3f3f; int n,m; struct node{ int v,w; node(){ } node(int _v,int _ 阅读全文
posted @ 2020-03-03 20:13 _LH2000 阅读(158) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; int n,m; struct node{//结构体 int v,w; node(){ }; node(int _v,int _w){ v=_v; w=_w; } }; vector <node> g[1010 阅读全文
posted @ 2020-03-03 20:11 _LH2000 阅读(260) 评论(0) 推荐(0)
摘要:配合__int128使用 inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} while(c >= '0' 阅读全文
posted @ 2020-03-03 20:09 _LH2000 阅读(165) 评论(0) 推荐(0)
摘要:考虑用dp的做法,容易想到价格低的物品一定要比价格高的物品拿的优先级高,所以排序。 dp[i]表示取前i件物品需要的最少价格,当超越了价格,就不算。 转移方程为 dp[i]=min(dp[i-1]+a[i],dp[i-k]+a[i]) 表示当前物品单独买和买一送一的情况; 取最小值。 上代码 #in 阅读全文
posted @ 2020-03-03 20:03 _LH2000 阅读(117) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/1320/problem/B题目链接 题目给你一个有向图,然后再给你一条路径<u,v>,每次最短路的路径变化的话会重新导航,让你求出在<u,v>这条路径上重新导航次数的最小值和最大值。 题意很明了,可先用dij求出终点到所有点的最短路; 然 阅读全文
posted @ 2020-03-02 16:30 _LH2000 阅读(248) 评论(0) 推荐(1)