A 一般图匹配
B Best Subsequence
双向链表+优先队列


const int maxn = 1e5 + 10;
int F[maxn];int Find(int x) {return x == F[x] ? x : F[x] = Find(F[x]);
}
int main(void)
{int n, m; cin >> n >> m;for (int i = 1; i <= n; ++i) F[i] = i;for (int i = 1; i <= m; ++i) {int u, v;scanf("%d%d", &u, &v);int xx = Find(u);int yy = Find(v);F[xx] = F[yy];}int cnt = 0;for (int i = 1; i <= n; ++i)if (i == F[i])cnt++;cout << m - (n - cnt) << endl;return 0;
}

C Cool Pairs
题意:给定两个1…n的排列,要求求出两个数列A,B ,-n<=A[i],B[i]<=+n,并且 A[a[i]] <= A[a[i+1]],B[b[i]] <= B[b[i+1]],并且 a[i] + b[j] < 0 (i<j) 的(i,j)个数为k
分析:
突破点1:排列,与排列相对应的就是位置,这一题也不能免俗,当正着想无处下手的时候,反其道而行之,往往能取到奇效,我们不能从一个挨一个位置放,按照排列放
突破点2:正负,构造问题往往需要一个一个结论,这个结论一锤定音,决定问题的解决方法,这个题目暗示非常明显,包括 a[i]+b[j] < 0 和 数字的范围,那我们A数组放负数,B数组放正数,方案肯定够
不存在不满足条件的情况
突破点3:特殊情况,k = 0,构造的时候,极值,边界值,都是可以作为初始化的值的,我们将 A[a[i]],初始化为i-n-1,如果k = n*(n-1)/2 那么B全取0 ,k = 0, B全取n,中间的值怎么考虑呢,
考虑插入第x位,如果第x位放0,那么它的贡献是x-1,如果k>=x-1,我们就一直放0,当0<k<x-1时,我们只需要取B[x] 为 A[1],…A[x-1] 的第 k+1大的相反数,那么就有k个满足条件的
完毕

#include <bits/stdc++.h>
using namespace std;
/**/
const int maxn = 3e5 + 10;
int a[maxn], b[maxn], A[maxn], B[maxn];
int main(void)
{int n; long long  k;cin >> n >> k;for (int i = 1; i <= n; ++i) {scanf("%d", &a[i]); A[a[i]] = i - n - 1; B[i] = n;}for (int i = 1; i <= n; ++i) {scanf("%d", &b[i]);if (k >= b[i] - 1) {B[b[i]] = 0; k -= b[i] - 1; continue;}else {for (int j = 1; j < b[i]; ++j)a[j] = A[j];sort(a + 1, a + b[i]);B[b[i]] = -a[k + 1];break;}}cout << "Yes" << endl;for (int i = 1; i <= n; ++i) printf("%d ", A[i]); puts("");for (int i = 1; i <= n; ++i) printf("%d ", B[i]); puts("");return 0;
}

D Dates
霍尔定理
E Expected Value
国家集训队论文2019 wxh
F Free Edges
m−(n−cnt)m-(n-cnt)m−(n−cnt) cntcntcnt是连通块个数
H Hall’s Theorem
一开始不连边的时候k=2n−1k = 2^n-1k=2n−1,将左边1号点与右边1号点相连,集合&lt;(1),(1)&gt;&lt;(1),(1)&gt;<(1),(1)>不再符合条件,将左边1号点与右边2号点相连&lt;(1,x),(1,2&gt;(x=2,...n)&lt;(1,x),(1,2&gt; (x = 2,...n)<(1,x),(1,2>(x=2,...n)这些集合不再符合条件,这样不停的加点,每次减少的是C(n−1,j−1)C(n-1,j-1)C(n−1,j−1),考虑将2号点与左边1号点相连,那么&lt;(2),(1)&gt;&lt;(2),(1)&gt;<(2),(1)>不再满足条件,与2号点相连&lt;(2,x),(2,2)&gt;(x=3,...n)&lt;(2,x),(2,2)&gt; (x=3,...n)<(2,x),(2,2)>(x=3,...n)不再符合条件,每次减少的是C(n−2,j−1)C(n-2,j-1)C(n−2,j−1),这样算法就出来了

const int maxn = 21;
int A[1 << maxn], B[1 << maxn];
int C[maxn][maxn];
vector<P> vec;
int main(void)
{int n, k; cin >> n >> k;k = (1 << n) - 1 - k;C[0][0] = 1;for (int i = 1; i < maxn; ++i) {C[i][0] = 1;for (int j = 1; j <= i; ++j)C[i][j] = C[i - 1][j - 1] + C[i - 1][j];}for (int i = n - 1; i >= 0; --i) {for (int j = 0; j <= i; ++j) {if (k >= C[i][j]) {k -= C[i][j], vec.Pb(P(n - i, j + 1));}else break;}}cout << vec.size() << endl;for (auto p : vec)printf("%d %d\n", p.first, p.second);return 0;
}

300iq Contest 1相关推荐

  1. 300iq Contest 3简要题解

    和dcx打了一场300iq contest 3,垫底了. A: 有两个做法. 第一个做法是考虑对于一个合法的点集SSS,一定存在一个树上的连通块,使得从连通块中任何一点,距离SSS中任一点不超过x2\ ...

  2. [300iq Contest 1]简要题解

    前言 老年选手的智商训练(1/∞) 题目链接 Angle Beats 考虑建图,发现每个∗*∗和+++的度数都为2,每个...的度数都为1 对于每个∗*∗和+++拆两个点,这两个点互相连边 对于一个∗ ...

  3. 「题解」300iq Contest 2 B Bitwise Xor

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:gym102331B. 题意概述 给你一个长度为 nnn 的序列 aia_iai​,求一个最长的子序列满足所有子序列中的元 ...

  4. 「题解」300iq Contest 2 H. Honorable Mention

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:gym102331H. 题意概述 给定一个长度为 n n n 的序列 a a a,有 q q q 次询问,每次询问给定三个 ...

  5. 【长更】一句话题解(组队训练的俄罗斯题、oj、camp)

      还是太长了,第二次分裂..   标 * 的为有价值的题,标 ^ 的为欺诈题,标 - 的为知识点待填坑,标 ? 的表示看别人是这样做的但是没懂为什么   组队训练的题,如果是队友过的板刷题,题面又很 ...

  6. HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5

    思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...

  7. HDU 6051 - If the starlight never fade | 2017 Multi-University Training Contest 2

    /* HDU 6051 - If the starlight never fade [ 原根,欧拉函数 ] | 2017 Multi-University Training Contest 2 题意: ...

  8. 【每日亿题#12】AtCoder Grand Contest 021 (A ~ F)全部题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 AtCoder Grand Contest 021 题解 A. Digit Sum 2 B. ...

  9. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

最新文章

  1. Nature:原来记忆是这样形成的!科学家发现记忆形成新机制
  2. 明尼苏达大学研究团队道歉,Linux内核维护人员:拒绝
  3. NSS_06 extjs弹出窗口上的文本框默认获得焦点
  4. 【数理知识】《矩阵论》方保镕老师-第4章-赋范线性空间与矩阵范数
  5. html中给%3cb%3e加上颜色,如何使用CSS(jQuery SVG图像替换)更改SVG图像的颜色?
  6. 单轮MapReduce的矩阵乘法
  7. android material 颜色值,Android Material Colors 谷歌 Material Design 标准颜色
  8. android 电池高温关机,Android 关机问题分析指南
  9. Fescar TC-beigin流程
  10. strstr的实现 和key=value字符串的实现
  11. jq遍历的基础语法之一
  12. Java程序员实现完美代码的十大要素
  13. Unix/Linux入门篇
  14. 银行卡号与开户行对照文档
  15. Kafka Eagle安装详情及问题解答
  16. 查找bug的方法(随笔)
  17. 扫码签到之动态刷新二维码——给每一帧附加有效期(原理、web 小程序变量共享)
  18. 会声会影应该如何制作电影开幕效果
  19. [6] 支付漏洞( 0 元购 )
  20. 计算机网络面试常见题

热门文章

  1. ssm毕设项目学生宿舍管理系统15pjb(java+VUE+Mybatis+Maven+Mysql+sprnig)
  2. html实战:用html编写游戏
  3. Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍
  4. H5项目常见问题及注意事项
  5. HardSwish和HardSigmoid的关系
  6. XP桌面图标有蓝底/阴影 脑桌面有蓝色阴影如何去掉
  7. 5分钟内完成Python键盘记录程序
  8. matplotlib绘制蜡烛图
  9. Httpservletrequest获取上传文件
  10. centos配置启动项_查看centos开机启动项命令 - 老牛博客