【atcoder beginner 308E - MEX】】的更多相关文章

越学越菜系列 于2020.11.2,我绿了(错乱) A - Heavy Rotation 签到题,奇数Black,偶数White. code: #include<bits/stdc++.h> #define N 10000005 #define LL long long using namespace std; int t; int a,b; inline LL qr() { LL x=0,w=1;char a=0; while(a<'0'||a>'9'){if(a=='-')w=…
[链接]h在这里写链接 [题意] 给你任意两点之间的最短路. 让你求出原图. 或者输出原图不存在. 输出原图的边长总和的最小值. [题解] floyd算法. 先在原有的矩阵上. 做一遍floyd. 如果还能扩展. 也即存在w[i][j] > w[i][k]+w[k][j]; 则无解. 否则. 先把所有w[i][j]加上(i<j),记为ans; 也即先在任意两点之间都连一条边.边的长度对应了两点之间最短路. 然后考虑什么时候可以减少一条边. 可以在做floyd的时候. 如果出现w[i][j] =…
[链接]h在这里写链接 [题意] 让你在杯子里加糖或加水. (4种操作类型) 糖或水之间有一定关系. 糖和水的总量也有限制. 问你糖水浓度的最大时,糖和糖水的量. [题解] 写个dfs就好. 每次有4种选择. 可以写个记忆化. [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using namespace std; const int N = 3000; int a,b,c,d,e,f,ans,total; int dp[N+10][N+1…
[链接]h在这里写链接 [题意] 看懂题目之后就会发现是道大水题. [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using namespace std; int n,k,ans; int main(){ //freopen("F:\\rush.txt","r",stdin); ios::sync_with_stdio(0),cin.tie(0); cin >>…
[链接]h在这里写链接 [题意] 在这里写题意 [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using namespace std; int n,a; int main(){ ios::sync_with_stdio(0),cin.tie(0); cin >> n >> a; cout << n*n - a << endl; return 0; }…
[链接]点击打开链接 [题意] 在这里写题意 [题解] 贪心. 连续一块的p[i]==i的话,对答案的贡献就应该为(这个连续块的长度+1)/2; 长度为1的也正确. (也即两两相邻的互换位置.) [错的次数] 0 [反思] 在这了写反思 [代码] #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <vector> #incl…
[链接] 我是链接,点我呀:) [题意] 让你找到一个各边和坐标轴平行的矩形.使得这个矩形包含至少K个点. 且这个矩形的面积最小. [题解] 把所有的"关键点""都找出来. 然后枚举任意两个点作为矩形的对角. 然后看他是不是包含了至少K个点即可. [代码] #include <bits/stdc++.h> using namespace std; const int N = 50; int n, k; long long ans = -1; int xx[N +…
[链接] 我是链接,点我呀:) [题意] 让你求出桥的个数 [题解] 删掉这条边,然后看看1能不能到达其他所有的点就可以了 [代码] #include <bits/stdc++.h> using namespace std; const int M = 50; int n, m,g[M+10][M+10]; pair<int, int> a[M+10]; bool bo[M + 10]; void dfs(int x) { if (bo[x]) return; bo[x] = tr…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟,把#换成1 八个方向加一下就好. [代码] #include <bits/stdc++.h> using namespace std; const int N = 50; const int dx[8] = { 1,1,1,0,0,-1,-1,-1 }; const int dy[8] = { -1,0,1,-1,1,-1,0,1 }; int a[N + 10][N + 10],h,w; string s; int m…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用map轻松搞定 [代码] #include <bits/stdc++.h> using namespace std; map <int, int> mmap; int main() { for (int i = 0; i < 3; i++) { int x; scanf("%d", &x); mmap[x]++; } for (auto y : mmap) if (y.secon…