我们记录((出现的位置和))出现的位置,那么当原始)数量大于(时,肯定是在第一个((处做增量,并
解题思路:答案肯定是某一个区间的一段长度*2,那么枚举每一个区间他的最大值是多少。那
下一行就看是最大值减去次小值还是次大值减去最小值更好了。
题解思路:利用中国剩余定理解决多个同余问题,这里需要再加一项mn = 7,an = 0,这样才能求出7的倍数的解,然后再需要用到容斥,2^15枚举就行了。1.扩展欧
题目链接:https://www.lydsy.com/Judg
题目链接:http://codeforces.com/problemset/problem/1175/E解题思路:预处理出每个点用一次可以到达最远的距离。那么某个点用两次
题目链接:http://codeforces.com/contest/1173/problem/D解题思路:首先得
不会超过n了。2.编号为1的卡片只能从外面重新再进来,这个时候很明...
题目链接:https://codeforces.com/contest/1243A - Maximum Square水题不说了#include <bits/stdc++.h>usi
题目链接:https://vjudge.net/contest/339284#overview A.Numbers待做B.Broken Watchs = input() s = s.split(" ") A,B,C,N = list(map(int,s)) n = (N-1) // 2 ret = N*N*N - 3*N*(n)*(n-1) - N - 3*N*(N-1) an
题目链接:https://codeforces.com/problemset/problem/1256/F解题思路:任意的翻转都可以认为是翻转若干个长度为2的,交符翻转偶数次等于...
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=863A.#include <bits/stdc++.h>using namespace std;const int
题目链接:https://code
题目链接:https://codeforces.c
题目链接:https://vjudge.net/problem/Gym-100519I解题思路:先挂在这里#include<bits/std
题目链接:https://vjudge.net/contest/301219#problem/F解题思路:枚举每个矩形的时候,看它是否需要和其他人合并只需要查看它的外形边框是否又被标记,这个可以直接用离散化,然后set存一下每个矩形四个格子,就可以用log(n)找到合并的矩形,然后后并查集并一下就好了。#include <bits/stdc++.h>#define...
题目链接:https://vjudge.net/problem/Gym-100851L解题思路:根据题目知道
题目链接:https://www.cometoj.com/contest/38/problemsA.比赛暴力枚举+排序#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;const int mx = 500 + 10;...
题目链接:https://vjudge.net/problem/Gym-100851J解题思路:出题故意不给501次
题目链接:https://ac.nowcoder.com/acm/contest/907#questionA.【六】平
题目链接:https://vjudge.net/problem/Gym-101480J解题思路:因为度最多为3所以流量最多不超过3对于在同一个连通块上:flow ==1对于在同一个环上(可以看做有向图强连通):flow == 2对于某一个点对,删除任意一条边他们还是在同一个环上,说明去掉一个流量他们的流量还是2,所以这种情况:flow == 3对于第三种情况可以枚举每...
题目链接:https://vjudge.net/problem/Gym-101170A解题思路:首先要确定的是,改变次数最多不会超过2*n次,因为n最多40,所以我们只要改变每个数的前两个最高位,肯定可以让n个数有序。然后我们就可以想办法搞个DP[i][j]表示将前i个数变成有序花了j次的最小值。为什么是最小值呢,维护最小值就是使得高位尽量小,那么就使得后面的数,更有机会直接...
题目链接:https://code.mi.com/problem/list/view?id=151&cid=13解题思路:首先将x轴和y轴坐标离散化,然后就可以用二维前缀和求得每个格子被覆盖了几次,然后就可以求出每个格子的贡献,最后将总的贡献和乘以总的方案数的逆元即可。#include <bits/stdc++.h>#define x first#def..
题目链接:https://www.cometoj.com/contest/71/problemsA.「壶中的大银河」水题B.「龙颈之玉 -五色的弹丸-」用一个双向队里维护一下贪吃蛇某个点的前一个位置方向是啥就好了#include<bits/stdc++.h>#define x first#define y second#define inf 0x3f3...
题目链接:https://vjudge.net/problem/Gym-101170H解题思路:如果用一个值给他们做排名,可以发现一个格雷码的值是从高位开始间隔性+,-变化2^(i)-1。#include<bits/stdc++.h>using namespace std;typedef long long ll;char a[105],b[105];int...
题目链接:https://vjudge.net/problem/Gym-101174F解题思路:其实这题不同启发式合并也可以做,对rank排个序,然后在做个dfs序,把rank值小的先插入树状数组中更新,然后对每个节点查询它的dfs序的区间和就好了。对于DSU来说就更加无脑了,本来就是"暴力",所以我们直接DSU再加一个树状数组维护前缀和。最坏时间复杂度就是O(n*log(n...
题目链接:https://vjudge.net/problem/ZOJ-4069 解题思路:1.n个点组成环的不同种类数是(n-1)!/2;n个点组成一条链的不同种类数是
题目链接:https://nanti.jisuanke.com/t/33680 解题思路:随机两个袋鼠的位置,使得让他们相遇,那么这个操作就是一个四维的bfs,前两维代表第一只袋鼠的位置,后两维表示第二只袋鼠的位置。这样随机枚举最多是N*M次。所以时间复杂度最最最最坏情况也就O(N^3*M^3)。 #include <bits/stdc++.h>using ...
题目链接http://codeforces.com/contest/1139A. Even Substrings判断个位是否是奇数即可。#include <iostream>#include <set>#include <arrnamespace std;typedef...
题解思路:dis[i][j]表示i到j之间的距离dp[x][j][0]表示从x点开始经过j个点没有回来的最小花费,dp[x][j][1]表示回来的最小花费那么 dp[x][j
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号