ZOJ 2592 Think Positive ——(xjbg)】的更多相关文章

做法是,先求出前缀和pre.然后枚举端点i,[i+1,n]中pre最小的找出来,减去pre[i-1]大于0,这是第一个条件:第二个条件是,从i开始的后缀和和i之前的最小的一个pre相加大于0.只要满足这两个条件那么这个端点就是可行的.显然找这两个区间的最值都是可以用数组线性维护的,因此总体复杂度是O(n)的. 代码如下: #include <stdio.h> #include <algorithm> #include <algorithm> using namespac…
ZOJ 2477 Magic Cube(魔方) Time Limit: 2 Seconds      Memory Limit: 65536 KB This is a very popular game for children. In this game, there's a cube, which consists of 3 * 3 * 3 small cubes. We can unwrap the cube, it will become like this: 这是个有名的儿童游戏.游戏…
POJ 1502 MPI Maelstrom / UVA 432 MPI Maelstrom / SCU 1068 MPI Maelstrom / UVALive 5398 MPI Maelstrom /ZOJ 1291 MPI Maelstrom (最短路径) Description BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed shar…
ZOJ - 1586 QS Network (Prim) #include<iostream> #include<cstring> using namespace std; +; ;//无穷远 int n; int cost[maxn]; int Edge[maxn][maxn]; int lowcost[maxn]; void Init() { cin>>n; ;i<n;i++) {//读入每个结点的适配器价值 cin>>cost[i]; } ;i&…
题意:给一串字符,问你最少几步能变成后缀表达式.后缀表达式定义为,1 * 1 = 1 1 *,题目所给出的字串不带空格.你可以进行两种操作:加数字,交换任意两个字符. 思路:(不)显然,最终结果数字比*号至少多1,如果缺了数字就直接放到字符串最前面(这样肯定能和后面的*运算),加步数.然后遍历,遇到*号如果当前数字够就直接运算,不够那么就把*和最后面的数字交换.讲一下为什么要可以,因为我们要保证末尾不是数字,如果末尾数字数字显然不是后缀表达式,其次我们交换之后当前的运算就没了,那么就过了,然后后…
Jugs Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with the following puzzle. They were given a 3-gallon jug and a 5-gallon jug and were asked t…
虽然是xjbg的题目,但是并不很好做. 题意不难理解.读入有点麻烦.做法是先正着推每段对话的?可能是谁说的,然后反过来选择即可.正推时,其中vis数组表示谁已经被用过了,cnt表示该组当前可以选择几个,choose[i][j]表示第i段对话中,选择第j个名字作为说话者是不是可能的. 那么正推时就不难理解了,首先要这个名字没出现在他说的话中,然后1.这是第一段话,2.前一段对话中这个名字不是被选择作为说话者的,3.前一段对话选了好几个(因此我可以选择这个名字作为说话者而不重复,因为前一段对话可以选…
嗯... 题目链接:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827364501 这道题是想出来则是一道很简单的dfs: 将一个4*4的地图给每一个点排序,如下图: 0  1  2  3 4  5  6  7 8  9  10  11 12 13 14 15 设一个点为第k个点,那么它的坐标为(k/n,k%n),根据这个进行dfs,当k == n * n是退出dfs.如果k < n *n,就继续dfs,判断是否能放下,即要…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 题意:给出一个n,有n*n大小的城市,(.)表示空地,从碉堡(O)射出来的子弹可以前后左右四个方向发射,只有墙壁(X)可以挡住子弹,所以同一行同一列不能出现两座碉堡,除非它们中间有墙壁隔着,问最多能放多少座碉堡. 思路:一个个点遍历,看符不符合条件,符合条件座数+1然后继续下一点. #include<iostream> using namespace std; ]…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1625 题目大意:将n个数重新排列,使得每个数的前一个数都不能和之前的一样,求一共有多少种排列方法 ample Input: 3 4 Sample Output: 3 11 分析: CrazyAC's 解题报告: 本题一道DP题 仔细想想不难的 首先我们确定状态F[N]表示所产生的新排列的情况数 那么F[N]=f(F[N-1]) 怎么来确定他呢? 由于F[N-1]是排…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1745 题目大意:一个串由N个字符组成,每个字符是‘0’或者是‘1’,在任意一段连续的子序列中,要求0和1的个数的差不超过K,求一共有多少种这样的串,比如N=4,K=3时,除了0000和1111外的其他四个字符的串都符合要求. Sample Input 1 2 4 3 Sample Output 2 14 分析: 这种涉及到任意子区间的性质的问题,如果每个子区间都考虑…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=13 题目大意:说的是有三种不同的装备,分别是头盔,盔甲,战靴需要运输,每种装备拥有不同的重量,体积,以及防御能力.当三种装备按照一定的数量规定组合成套装时,套装可以发挥处更强的攻击能力.然后有n个运输车,每个车能够运送的重量和体积有限制,现在问如何给这个n个运输车分配运送任务(即每个运输队运多少头盔,多少盔甲,多少战靴) 可以获得总的防御值最大. 输入描述:第一行是运…
题意:一串括号,每个括号代表一个值,当有相邻括号组成()时,可以交换他们两个并得到他们值的乘积,问你最大能得到多少 思路:DP题,注定想得掉头发. 显然一个左括号( 的最远交换距离由他右边的左括号的最终位置决定,那么我们可以从右边开始做.我们用dp[i][j]表示第i个左括号交换到第j个位置后,他和他后面左括号所能得到的最大值.显然,dp[i][j] = i交换得到的值 + 后面左括号产生的最大值.而后面左括号能产生的最大值显然就是max(dp[i+1][k])其中j <= k <= n. 代…
题意:裸最小生成树,主要是要按照字典序. 思路:模板 prim: #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define INF 0x7fffffff #define MAXN 128 bool vis[MAXN]; int lowu[MAXN];//记录起始边(已加入集合中的边) int lowc[MAX…
参考自:https://blog.csdn.net/qq_36553623/article/details/78445558 题意: 第一行三个数字n, m, q表示有m个座位围成一个环,n个队伍,q次A题 接下来n个数表示n个队伍所在位置(1<=ai<=m) 再接下来q行,每行a, b表示第a个队伍在第b秒A了一道题 有一个只会每一秒顺时针移动一个位置的发气球机器人 只要当前队伍有题目已经A了就会给他对应数量的气球(当然每道题最多1个气球) 如果a队伍在b时刻A了一道题,并在c时刻才拿到气球…
每次连线,起点和终点之间,每一个被点亮的点,这些点都能连出去两条线,因此可以增加的块数+2(1这个点除外,因为只有连出的点没有连进的点),计算起点和终点之间有几个点被点亮即可,然后1这个点特判一下.感觉,可以用线段树维护..不过这题还是有规律的,每转过一圈,两线之间的点数就会加1,然后O(n)扫一遍就行了.注意答案会爆int. 代码如下: #include <bits/stdc++.h> using namespace std; ; typedef long long ll; int n,k;…
Description 题目描述 Bob is a freshman in Marjar University. He is clever and diligent. However, he is not good at math, especially in Mathematical Analysis. After a mid-term exam, Bob was anxious about his grade. He went to the professor asking about th…
Knight Moves A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squares on a chessboard exactly once. He thinks that the m…
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3607 题意:一个卖面包的小姑娘,给第i个来买面包的人的价格是pi, 每个人的时间是ti, 问用最小的时间间隔 求最大的平均值. 刚开始没有 考虑,后一个的时间间隔要大于之前的最大的时间间隔 才行... #include <iostream> #include <cstdio> #include <cstring> #include <…
题目链接 题意 : 将n*n个正方形进行排列,需要判断相邻的正方形的相邻三角形上边的数字是不是都相等. 思路 : 只知道是个深搜,一开始不知道怎么搜,后来看了题解才明白,就是说不是自己去搜,而是将给定的正方形按照要求一个个往上摆,如果摆不下去了肯定是没有结果的.还有可以将一样的放一起,如果一个在某个位置放不下了,那么其他的更放不下了. #include <stdio.h> #include <iostream> #include <string.h> using nam…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3374 题目大意:JAVAMAN 到梦幻城市旅游见到了黄金树,黄金树上每天回结出金子.已经有n棵树,JAVAMAN要停留m天,每天只能砍掉一棵树,砍掉树后就能得到树上的黄金.给定n棵树上原有的黄金a[i]和每天可以新增加的黄金b[i],求他最多可以得到多少黄金.中途如果有1天不砍树的话,之后的日子久不能砍树,所有最好每天都砍树,或者直到树被砍完. Sample Inp…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1702 题目大意:给定有很多数字组成的诗,譬如 “AABB”, “ABAB”, “ABBA” and “AAAA”形式的诗句是押韵的.从中挑选,求最多可以构成多少押韵句,并且输出这些句子在原序列中的位置. Sample Input 15 1 2 3 1 2 1 2 3 3 2 1 1 3 2 2 3 1 2 3 Sample Output 3 1 2 4 5 7 8…
Common Subsequence Time Limit: 2 Seconds      Memory Limit: 65536 KB A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk…
主题链接:problemCode=2679" target="_blank">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2679 Among grandfather��s papers a bill was found: 72 turkeys $_679_ The first and the last digits of the number that obviously represent…
Rescue Time Limit: 2 Seconds      Memory Limit: 65536 KB Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want…
这是一道贪心题,他的贪心思想很容易想明白,我们保证油箱里的油始终是最便宜的我们最后的花费就能是最少的.实现方法就是:比如现在在i点,我们看邮箱满载能最远到达哪里,不妨设最远到达j,(j >= i + 1),注意此处的达到,只是指能够到达这个路段的开头位置,并不是走完这段路...所以我们到达j点会有一个leave剩余,leave >= 0,但是在i 和 j点之间我们只需要到达第一个油价比i点小的路段开头位置,换上新油就可以了,之所以是第一个,是因为题目要求必须从前往后按顺序走,不妨设中间有没有出…
Statistical approaches to randomised controlled trial analysis The statistical approach used in the design and analysis of the vast majority of clinical studies is often referred to as classical or frequentist. Conclusions are made on the results of…
Circuit Board Time Limit: 2 Seconds Memory Limit: 65536 KB On the circuit board, there are lots of circuit paths. We know the basic constrain is that no two path cross each other, for otherwise the board will be burned. Now given a circuit diagram, y…
Time Limit: 2 Seconds Memory Limit: 65536 KB The successor to a string can be calculated by applying the following rules: Ignore the nonalphanumerics unless there are no alphanumerics, in this case, increase the rightmost character in the string. The…
参考:https://blog.csdn.net/KuHuaiShuXia/article/details/78408194 题意: 描述了吃鸡刷圈的问题,给出楼的坐标点,和两次刷圈的半径R和r,现在寻找最安全的地方 思路: 判定安全方法:每个点以r为半径画圆,与以原点为圆心,半径为R的圆的重合部分的大小为比较基准 那么问题又转化为与原点的距离 如果R>2r,那么以大圈圆心为圆心的R-2r范围内的建筑的安全概率是相等的. 反之,以大圈圆心为圆心的2*r-R范围内的建筑的安全概率是相等的. 我们只…