11 2021 档案

摘要:题目描述 下面是一段实现冒泡排序算法的C++代码: for (int i=1;i<n;i++) for (int j=1;j<=n-i;j++) if (a[j]>a[j+1]) swap(a[j],a[j+1]); 其中待排序的a数组是一个1~n的排列,swap函数将交换数组中对应位置的值。 对于 阅读全文
posted @ 2021-11-19 00:54 andyc_03 阅读(96) 评论(0) 推荐(0)
摘要:【题意】 给定一个n个点m条边的图,每一条边上有一个 0/1 的权值。 定义一条边的邻边为与它有公共顶点的边(显然一条边也是它自己的邻边)。 你每次可以选择一条边,将它所有邻边的权值异或1。 请在 m 次内将所有边的边权变为 0,保证数据有解。 【分析】 我们考虑先确定每一个点的01状态,然后在去处 阅读全文
posted @ 2021-11-18 21:55 andyc_03 阅读(67) 评论(0) 推荐(0)
摘要:【题意】 【分析】 【代码】 #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=998244353; ll p,a,b,ans,M; ll qpow(ll a,ll b) { ll res= 阅读全文
posted @ 2021-11-18 18:46 andyc_03 阅读(49) 评论(0) 推荐(0)
摘要:【题意】 给定一个长度为偶数的1-n的排列 求最大化$\sum_{i=1}^{n-1}|p_{i+1}-p_i|$,在满足上式最大时的最小操作次数 【分析】 显然我们会贪心的考虑让数列放成 小大小大小大 / 大小大小大小 这样的形式 这样除去最左最右两个位置,每个位置的贡献都是2次,大正小负 那么我 阅读全文
posted @ 2021-11-08 13:38 andyc_03 阅读(45) 评论(0) 推荐(0)
摘要:【题意】 有n堆石子,每堆$a_i$个,每次要从任意$\frac{n}{2}$堆中取至少1个(不同的堆取的数量可以不同),问先手必胜还是后手必胜 【分析】 我们考虑如果开始有多于$\frac{n}{2}$个0,那么显然先手就必败了,如果0的个数少于一半,那么先手可以通过把取$\frac{n}{2}$ 阅读全文
posted @ 2021-11-08 12:59 andyc_03 阅读(51) 评论(0) 推荐(0)
摘要:【题意】 给定一个01序列,求有多少个互不相同的树的欧拉序为这个序列(每次进入和回溯都记录在序列中) 【分析】 显然这是一个树的计数问题,24分的部分分就是给暴力dfs统计的 考虑对于$n\leq300$的情况该怎么处理 计数问题比较常见的方法有数学推式子,dp类型,容斥类...... 这道题目的数 阅读全文
posted @ 2021-11-07 21:18 andyc_03 阅读(79) 评论(0) 推荐(0)