
VJ CF
LSlong127
re_reality
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Good Array
题目链接如果数组中有一个元素等于所有其他元素的和,那么我们称之为一个好数组。例如,数组a=[1,3,3,7]是一个好数组,因为元素a4=7,等于和1+3+3。现在给出一个由n个整数组成的数组a。您的任务是打印这个数组所有的可删除的数字。即删除这个元素后,剩余元素组成的数组是一个好数组。例如,如果a=[8,3,5,2],我们可以删除a1和a4,数组将分别变成[3,5,2] [8,3,5],它们...原创 2019-01-07 01:02:17 · 716 阅读 · 0 评论 -
CodeForces - 1077 D - Cutting Out(二分答案)
题意:给你一个序列s,长度为n。你需要找到一个长度为k的序列t使得它能被最多次数的从 s 中删除(可不连续且与顺序无关)。你的任务是找到一个序列t。如果有多个可行方案,输出字典序最小的一个序列(CF并没有对字典序作出要求)。思路:可以发现,对于所有数字按照出现频率排序以后,优先选择出现次数多的数是肯定没有问题的。但是有些出现次数多的数可以多次选择,这个题就变的比较麻烦。我们发现,如果对于给定...原创 2019-02-28 21:00:27 · 245 阅读 · 0 评论 -
B - Linear Algebra Test(STL的map函数)
参考周公子大佬的博客一波水果(STL里的map,map尝鲜)题意:给出一些矩阵判断有多少对矩阵符合矩阵相乘的规律题目链接B. Linear Algebra Test用完之后感觉有点像一个大的“万能桶”#include<bits/stdc++.h>using namespace std;typedef long long ll;map<int,int> m...原创 2019-03-03 23:08:44 · 138 阅读 · 0 评论 -
F - Building Numbers(贪心+前缀和)
题意:从1开始操作,可以进行两种操作,第一种是乘以2,第二种是加1。让你求区间的总共的操作数。思路:一个数从1开始操作,要想让操作次数最少,理所当然是要让乘以2的操作变多,所以我们可以倒着推一个数所需要的操作数,如果这个数是偶数,我们就让这个数除以2,然后操作数加1,如果这个数变为奇数了,我们就减1,操作数加1,让它变成偶数。这题还需要注意一个点,就是这题会卡前缀和,我们在输入的时候就进行预...原创 2019-03-04 19:30:06 · 424 阅读 · 0 评论 -
F - Divisibility(01背包)
题目链接POJ - 1745 题目大意:给出N和K,然后给出N个整数(不论正负),问在这N个数中,每两个数之间(即N - 1个位置)添加加号或者减号,然后运算的值对K取余,如果余数等于0输出Divisible,否则输出Not divisible思路:定义dp[i][j]为前i个数可以算得的所有情况,1为可以,0为不可以所以如果dp[N][0]为1那么即可以组成一个数对K取余为0...转载 2019-03-11 20:33:05 · 222 阅读 · 0 评论 -
E - Alignment(DP.最长上升子序列,然后摘抄一些最长上升子序列的一些东西)
最长上升子序列 (LIS) 详解+例题模板 (全)#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algori转载 2019-03-12 18:30:08 · 199 阅读 · 0 评论 -
Mirrored String II(暴力模拟,或者manacher算法)
#include<iostream>#include<cstring>#include<string>#include<algorithm>#define mem(a,x) memset(a,x,sizeof(a));using namespace std;int odd[1010], even[1010];int check(char...原创 2019-03-18 21:00:23 · 236 阅读 · 0 评论 -
Highway Project(双条件最短路+最小生成树的感觉,SPFA,外加一个Dijkstra优先队列)
题目链接:ZOJ - 3946 题意:t组输入,n个城市,m条边(1 ≤ N, M ≤ 105),城市有一个首都,编号为0。然后给你m条边,让你建公路,要求花费时间最小,时间相等花费最小。要求输出从0到其他点的总时间和建造公路的总花费。每条路的时间和花费都是1e5的范围。思路:一看是双条件最短路就直接敲了,但是裸双条件的话会出现一个问题,我们会把一些边重复算。所以就有点像最小生成树了QAQ…...原创 2019-04-10 20:32:21 · 354 阅读 · 0 评论 -
Equalize Them All(思维)
题目链接:Codeforces Round #550 (Div. 3) – D题意:给你一个数组,对于每一个数都可以有两种操作类型,问你通过最少几次操作之后数组里的元素都相同,题目保证这个数存在。思路:题目说保证这个数存在,并且要求操作数最少,那么我们假设最后所有数都为x一个数经过操作一肯定会变大,经过操作二肯定会变小每个数经过最多一次操作之后一定可以变成x那么对于n个数,假如x从没...原创 2019-04-01 17:06:28 · 272 阅读 · 0 评论 -
Cow Contest(Floyd变形)
题意:给出牛之间的强弱关系,让你确定有多少头牛能够确定其排名。题目链接Cow Contest思路:如果一头牛和其他n-1头牛都有关系的话,那么我们就可以确定它的排名。题目数据不大,直接floyd,看到别的还有这种BFS的做法([BZOJ1612][Usaco2008 Jan]Cow Contest奶牛的比赛 dfs),时间上不会差太多,毕竟数据很小,自己交了一下,对于这题的样例BFS更快一点...原创 2019-02-11 20:09:27 · 346 阅读 · 0 评论 -
Silver Cow Party(用矩阵转置来反向建图)
题意:来自N个农场的牛去参加一个party,party位于X号农场,牛去party后还要回农场(回去的路径可以不同并且来回的路都是时间最短的),求这些牛来回所走的最长时间。思路:裸的最短路的题,Dijkstra直接盘就行#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt原创 2019-01-29 16:57:09 · 335 阅读 · 1 评论 -
Rumor(并查集)以及并查集的有关操作
题目链接C. Rumor先是并查集的有关操作【模版】并查集 及路径压缩,正好可以复习一波题意:有一个人,他所在的社区有n(1 &amp;lt;= n &amp;lt;= 1e5)个人,现在他想散播一个谣言,让整个社区的人都知道,给每个人散播谣言都要花费一定的钱,但是给一个人散播谣言之后,这个人可以免费地把谣言传给这个人的朋友。输入:n,m(1 &amp;lt;= n &amp;lt;= 1e5)下面一行输入n个数代表散播个...原创 2019-01-17 20:15:41 · 327 阅读 · 0 评论 -
Black Square
题目链接原创 2019-01-08 12:54:33 · 486 阅读 · 1 评论 -
(贪心)Make a Permutation!
#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;int main(){ int n,vis[20010],a[20010],flag = 0; scanf(&quot;%d&quot;,&amp;amp;n); queue&amp;lt;int&amp;gt; q; for原创 2019-01-21 14:58:54 · 223 阅读 · 0 评论 -
Invitation Cards(SPFA+前向星反向建图)
题意:一堆人从1出发,到其他的点,然后从其他的点再回来,最短距离。和之前那个牛聚会题目一样,两次spfa。Silver Cow Party由于这题的数据已经不能用邻接矩阵来储存,所以矩阵逆置就不能用了,所以需要用前向星进行反向建图,这里用到的也是一个很巧妙地方法。我们需要在用结构体存边的信息的时候,多定一个边的起点信息,用来后面的反向建图。#include<iostream>#...原创 2019-01-31 13:01:47 · 243 阅读 · 0 评论 -
(贪心+二分搜索)Exams
题目链接D. Exams题意:有N天和M门课程。接下来给你N天的行为,0表示这一天只能预习,[1,m]表示这一天可以考这门课(当然这一天你也可以选择不考或者预习)。接下来给你M个数cost[i],代表第i门课需要预习cost[i]天才能PASS。求从第一天起算,最少需要几天才能PASS所有功课,如果N天都PASS不了,则输出-1。以上转载自感谢博主思路:二分搜索答案,因为这题的条件和...原创 2019-01-21 20:49:14 · 159 阅读 · 0 评论 -
Currency Exchange(货币转换问题 SPFA判断正环)
题意:有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加思路:先建图,货币就是点,两种货币之间可以兑换就是有边,然后spfa找正权回路,两个二维数组储存两种货币间的汇率和手续费。spfa过程大体还是...原创 2019-02-01 12:34:58 · 719 阅读 · 0 评论 -
UVA11624 Fire! (BFS)
Fire!Joe works in a maze. Unfortunately,portions of the maze have caught on fire, and the owner of the maze neglectedto create a fire escape plan. Help Joe escape the maze.Given Joe’s location in th...原创 2019-01-22 20:50:51 · 228 阅读 · 0 评论 -
Wormholes(SPFA判断负环)
#include#include#include#include#include#include#include#include#define N 5000#define inf 0x3f3f3f3fusing namespace std;struct node{int to,w,next;} s[N];int n;int tot;int vis[N];int ...原创 2019-01-29 11:37:40 · 206 阅读 · 0 评论 -
Team Formation(思维)
题目链接:Team Formation题意:T组输入,每组给你一个n(2-1e6)个元素的数组,问其中任意两个数A,B满足 A ⊕ B > max{A, B}的有多少组。不用考虑顺序问题,即AB和BA算作一组。思路:题意就是对于一个数来说有多少比他小的数与他异或可以让这个数变大题目数据1e6,两层for肯定超时想要使一个数异或之后变大,找到这个数的二进制为0的位置,然后看有多少数...原创 2019-04-03 17:25:52 · 520 阅读 · 0 评论