https://vjudge.net/problem/2198221/origin】的更多相关文章

https://vjudge.net/problem/2198221/origin逆向思维,原题是人出来,我们处理成人进去,算出来每个人的曼哈顿距离,然后从大到小排序,距离长的先入.走的距离+这个人从队伍中走到入口的距离的最小值就是答案 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime&…
https://vjudge.net/problem/2198220/origin枚举等差数列第一个和第二个,然后二分确定数列后面是否存在,复杂度比较玄学,卡过了. #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set> #include<…
C# webkit 内核浏览器 访问https 网站 提示 Problem with the SSL CA cert (path? access rights?) 解决方法: 陈凯文11112014-02-04 这好像是安装中文路径,经常 出现问题.改下安装路径  7    评论(1)   热心网友2018-09-17 陈凯文1111说得对.只需要动态链接库所在路径上没有中文字符,webkit内核浏览器就可以访问https网址.…
#include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf 2147483647 #define N 10100 #define p(a) putchar(a) #define For(i,a,b) for(register long long i=…
#115. 无源汇有上下界可行流 先扔个板子,上下界的东西一点点搞,写在奇怪的合集里面 Code: #include <cstdio> #include <cstring> #include <algorithm> const int N=210; const int M=3e4; const int inf=0x3f3f3f3f; int head[N],to[M],Next[M],edge[M],cnt=1; void add(int u,int v,int w)…
https://vjudge.net/problem/11079/origin 题意:有N个商店和M个供应商和K种物品,每个商店每种物品有一个需求数,每个供应商每种物品有一个供应量,供应商到商店之间的运输需要花费,如果供不应求输出-1,否则输出最小花费. 思路:比较明显的最小费用流.想法大概都是源点和供应商连一条容量为供应量,花费为0的边,商店和汇点之间连一条容量为需求量,花费为0的边,供应商和商店之间连一条容量为INF,花费为题意给出的花费的边.建图的话一开始是直接对于每一个商店每一种物品和每…
题目链接:https://vjudge.net/problem/27377/origin 题意: 有一栋n层高的楼,并给你k个水球.在一定高度及以上将水球扔下,水球会摔破:在这个高度以下扔,水球不会摔破,并且可以捡起来再用.现在你要通过不断地试扔水球,找出在这栋楼上的第几层扔水球,恰好能让水球摔破.问你在最坏情况下,最少扔几次可以保证找出这个层数(若大于63次则输出'More than 63 trials needed.'). 题解: 这个问题可以转化成: 花费i个球,j次扔水球,最多能确定几层…
题目链接: https://vjudge.net/problem/36696/origin 题目大意: 要求从1到m升序排列,点可以随意移动,问最少需要移动多少次, 思路: 动态规划 可以推出转移方程为:dp[i] = max(dp[i], dp[j]) && mp[i] >= mp[j]  dp[i]++; 其中,dp[i]为i位置的序数mi前能保留(也就是不移动)的最大种类数. dp[i]++是因为自己也不能移动自己,得加一. 下面是AC代码: #include <iost…
题目链接: https://vjudge.net/problem/40913/origin 大致题意: 这是一道纯模拟题,不多说了. 思路: map模拟,vector辅助 其中用了map的函数: erase: https://www.cnblogs.com/kex1n/archive/2011/12/06/2278505.html 上面这个博客的讲解非常透彻 大致的意思就是: 删除map内的一个节点. 比如我代码里的这句: else if(op == "DELETE") { strin…
题目链接: https://vjudge.net/problem/19213/origin 大致题意: 一个滑雪者想知道自己在固定高度的山坡中最多能滑的距离是多少. 思路: 首先想到的就是dfs,但是..超时了,所以我们要用到动态规划进行优化. dfs的思路就是从第一个位置开始dfs搜索. dp的思路就是数形的思维,每一个树的根节点就是dp[x][y].这是一个4叉树,当dp[x1][y1] < dp[x][y]的时候进行向下递归,每次操作加上权值1,这个操作最终会返回一个最大值. 下面是AC代…
题目链接: https://vjudge.net/problem/35188/origin 题目大意: 要求你找到一个 i < j < k时有 a[k]-a[i] <= d的组的个数. 这道题的思路就是每输入一个a[i]就是找到那个第一个大于或等于a[i]-d的值!,设a[i]-d = mn, 则用lower_bound()函数可以得到这个第一个大于或者等于mn的值的下标. 关于lower_bound()函数的详细用法可以看这个博客: https://blog.csdn.net/qq_4…
题目链接: https://vjudge.net/problem/1810469/origin 题目大意: 给你一个字符串,中间切一刀,左右两边均反转,然后右边的串拼接到左边上. 思路: 比如  aabb | cc  --> ccbbaa, 这是一个反转的例子 如果 aabbcc| -> aabbcc, |aabbcc -> ccbbaa 考虑极端情况,知道,这相当于一个环! 于是就有做出一个重复字符串的思路,遍历一遍就可以了. 下面是AC代码: #include <iostrea…
题目链接: https://vjudge.net/problem/1735276/origin 题目大意与思路: 题目的基本意思就是求一个矩形的最小面积. 这个可以用最大最小值, 将他们分为X和Y组.但是最大最小值有一个特殊情况,就是最大值和最小值在同一个组里,比如都在X组里 然后排序 这种情况我们可以确定一条边是x = a[2*n]-a[1]则需要我们用一个tm 现在只需要我们用这一条边乘上连续n进行比较,取最小值 下面是AC代码: #include <iostream> #include…
题目链接: https://vjudge.net/problem/1735275/origin 基本思路: 本题思路比较简单,首先,我们知道 a & x = b, b & x = b; 所以,一个数通过与运算改变只能改变一次! 所以,这里就有一种暴力的写法,三次for循环,时间复杂度是O(3n). 第一次,从1到n遍历一遍,计算各个元素出现的次数,如果大于等于2,则输出0,结束. 第二次,从1到n遍历,如果存在 vis[ a[i]&k ] >= 2 并且 与k与运算后的值与之…
https://vjudge.net/problem/71677/origin 已知A(0) = 0 , A(1) = 1 , A(n) = 3 * A(n-1) + A(n-2) (n ≥ 2) 求 A(A(A(A(N)))) Mod (1e9 + 7) Input第一行一个整数 T (T ≤ 10000) 代表数据组数 每组数据占一行,一个整数 n (1 ≤ n ≤ 1e12) Output对于每组测试数据输出一个整数.Sample Input412357427870913Sample Ou…
https://vjudge.net/problem/48715/origin 题意:给出必定含1689四个数字的字符串,随意交换位置构造出能被7整除的数. 分析:数学思维题.观察发现1689的排列与7的余数恰好是0...6,那么利用这个性质去与串中其他数字相补出能被7整除的数,把1689固定在后四位,把0独自提取出来,其他数字为一组,把它们的数值*10000后mod7,根据得到的余数选择相应的1689排列,最后把0放在末尾(对结果正确性没有影响).代码: #include <cstdio>…
题目链接: https://vjudge.net/problem/1377985/origin 题目大意就是要你把一个数字拆开,然后相乘. 要求得数要小于9,否则递归下去. 这里用到一个递归函数: int f(int x) { ) return x; ; while(x) { != ) ans *= x%; ; x /= ; } return f(ans); } 这个函数用来求得一个数字最终得到的那个k值是多少. 然后开一个二元数组记录一下,并且用到了前缀和,统计从1开始k值出现的次数:(打表)…
---恢复内容开始--- 题目链接: https://vjudge.net/problem/1812693/origin 这题的mod运算很恶心,真的... 本题有正反两个思路,一个是正面求解其不能成立的情况, 一个是反面求解,用total减. 我用的是正面求解. 一共有种情况: 1. 全是球 :poww(2, a)*poww(2,c)-1 2. 全是拍 : poww(2, a)*poww(2, b)-1 3. 一拍多球(2种可能):    1 -- (poww(2, a)*poww(2, c)…
题目连接: https://vjudge.net/problem/1753263/origin 其实这道题跟行列式里的分块发有点类似,但也是类似罢了. 主要的思想是每一行,每一列的第一行(或者最后一行)空出,让后根据下列算式: 行异或和:suma = a[1]^a[2]^a[3]...^a[n]. 列异或和:sumb = b[1]^b[2]^b[3]...^b[m]. 且本题的判断为YES的充要条件是:suma = sumb 有异或和的算法:x^a = b  <==> x^b = a 知: a…
题目连接: https://vjudge.net/problem/1812686/origin emmm 这一题的资料来自<动物世界>这一个李易峰演的电影.. 主要的思路就是概率,但是会牵扯到博弈论这一个复杂的思路,如果继续深入就会越陷越深... 为什么不需要博弈的根本原因是它的总数的不变的,这个需要考虑到 A: a1, b1, c1 B: a2, b2, c2 (其中a, b, c分别对应剪刀,石头,布) 现在要B赢,并且题目提到了B知道A中手牌 所以 A要赢的最佳可能是(a'*(c-b)+…
题目连接: https://vjudge.net/problem/1502082/origin 这一题第一眼看过去貌似是模拟,但是根据其范围是1e9可以知道,如果暴力解基本上是不可能的(不排除大佬级优化) 于是对1---9进行计算可以得到如下结果: 1 --- 1 2 --- 2 3 --- 2 4 --- 3 5 --- 3 6 --- 4 7 --- 4 8 --- 5 9 --- 5 故而有得到规律 n --- n/2+1 根据规律得到代码: #include <iostream> #i…
题目链接:https://vjudge.net/problem/25907/origin 一个山洞,里面有有1到n个位置,每个位置都有一定的金币,你有一个六面的骰子,一开始你在1,每次摇到了哪个数就往前走几步 如果超过了n就重新摇,知道n为止,问你到n需要摇的次数的期望. 一开始我用正推,一直错,在这里我们需要逆推,我们先不想正推,等下再说. 我们假设Ei表示i点开始可以获得的金子的期望,如果i点到n的距离>=6,那么Ei=(E(i+1)/6+E(i+2)/6+E(i+3)/6+...+E(i+…
链接:https://vjudge.net/problem/23625/origin 中文,题目不用说了. 其实这题的数据很小,所以直接暴力也可以过,但是还是要学会数位dp,因为并不是每一题的数据都会这么小,这里给出我暴力的代码和数位dp的代码(数位dp其实也是有一个大致的模板的). 暴力: #include<stdio.h> #include<string.h> ]; int n,m,k,t; int jug(int a) { while(a) { ==) ; ==&&a…
传送门:https://vjudge.net/problem/20465/origin 题意:你有n种钞票,面值为c[i],数量为v[i],便利店老板有无数张面值为c[i]的钞票,问你买一个价值为T的物品,最少需要经手多少张钞票,老板找零的钞票数也算经手的钞票数 题解:因为我的钞票是有限的,所以将自己看作一个多重背包,老板的钞票是无限的,所以将老板的钞票看做一个完全背包,定义状态dp[i]最少花费多少张钞票可以买价值为i的物品 边界:dp[0]=0; 目的:ans=min(dp1[i]+dp2[…
https://vjudge.net/problem/49919/origin 题意:给你n*n只出现O和X的字符阵.有两种操作,一种操作Ri将i行全变成X,一种操作Ci将i列全变成O,每个不同的操作最多进行一次.现给出目标状态,求空盘下的字典序最小的操作顺序是怎样的. 思路:拿到题目看起来很复杂,但仔细读题会发现X和O只由特定操作出现,且操作只进行一次,那么单独地考虑每行每列,如i行中出现了O,且存在X(如果不存在X那么可以略去Ri操作),说明在Ri操作后进行了Cj的操作,同样的方法去考虑列,…
题目链接   https://vjudge.net/problem/34215/origin 这个题就是线段树裸题,有两种操作,实现单点更新和区间和的查找即可,这里第一次学习使用树状数组完成. 二者相比,BIT无论从时间,空间还是代码量考虑都要优于ST,所以遇见这种求解区间和的操作考虑使用BIT. /*线段树 250 ms*/ #include<bits/stdc++.h> using namespace std; #define M ((L+R)>>1) #define lc (…
放题目链接   https://vjudge.net/problem/22021/origin 给出一个n*m的01矩阵,1可走0不可通过,要求走过的路可以形成一个环且可以有多个环出现,问有多少不同的行走方案: 这道题目可以有多个环而不是限制为一个环,大大减弱了题目的难度,我还是想了好久. 先简单介绍一下轮廓线及插头, 这种dp进行状态转移时,每个方格对应着他自己的一条轮廓线,由上一个方格的轮廓线的状态,推导当前方格的轮廓线状态. Normal 0 7.8 磅 0 2 false false f…
后缀自动机板子题 https://vjudge.net/problem/28017/origin 找多串的最长公共子串 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=na…
题目链接:https://vjudge.net/problem/2728294/origin 思路:可以抽象成管道,先试试能不能找到一个通道能通到终点, 如果可以则封锁这个通道,一个石头即可, 再试试能不能找到另一个通道能到达终点, 如果可以则再用一个石头封锁这个通道. 整个题目抽象成能不能找出两个独立的通道(如果不能说明需要公用一个管道),从起点流到终点. 为了充分利用格子,最合理化找出通道,应该选择靠边的方法找格子. #include <stdio.h> #include <iost…
Description 今天突然想来发一篇博客防死 [Portal][https://vjudge.net/problem/2650668/origin] 定义被x-y生成器生成的序列为, 一开始有一个数字S = 0, 每次输出S % 10, 然后把这个数字加上x或y. 现在给你一个串, 对于$0\leq x, y \leq 9 $要你计算至少要在串中插入几个数位才能将其变成正确的x - y生成器生成的串 字符串长度\(\leq 2e6\) Solution 这种数字之间跳来跳去的直接考虑最短路…