首页 > TAG信息列表 > 2021CCPC

2021CCPC威海 M.810975

2021CCPC威海 M.810975 题意:问构造出长度为 \(n\) 的01串,有 \(m\) 个1,其中最长连续 \(1\) 的段长度恰好为 \(k\) 的方案数。 知识点:容斥,多项式快速幂 先推荐一个类似的题目 HDU6397 Character Encoding 这题有两种方法,先说简单的那种 可以先解决将 \(m\) 个 \(1\) 插入到 \(n - m

连锁商店 (2021CCPC女生赛)

Problem - C - Codeforces 题意 有 n ( n <= 36) 个点,每个点有颜色,每个颜色都相同的权值(为正数);有 m 条边,u -> v 且 u < v, 求从 1 号点到 i 号点的路径上,选颜色互不相同的一些点,使权值和最大 状压dp 首先可考虑 TSP 问题类似的状压dp方法,但 \(36*2^{36}\) 太大,考虑优化 可以分析一

2021CCPC网络赛I Public Transport System

2021CCPC网络赛I Public Transport System 题目链接   题目中每条边边权上存在两个值,考虑将其变成一个值后进行单源最短路算法。   不难看出,一条边的边权有取决于上条边的边权,可以想到将所有可能出现的边权与上条边权情况全部表达出来。那么对于一个入度为\(u\),出度为\(v\)的

2021CCPC女生赛

这篇题解题目的顺序是按照我认为的难度顺序来的。 K.音乐游戏   把每一行的字符串读进来之后,直接去计算这个字符串中有多少个\("-"\)字符就可以了 int n; std::cin >> n; i64 ans = 0; rep(i,0,n + 1) { // for (int i = 0; i < n + 1; i ++ ) 读到n + 1的原因是getline读取字符

【2021CCPC女生赛】E. 被遗忘的计划

Gym-103389E 注意这题价值和价格不要搞混,vp的时候还以为是价值模n... k个都取价值最大的物品maxv,和就是f中的最大值maxf,k的唯一可能取值maxf/maxv 得出的k不在[1,1e9]或快速幂求出 v 数组的循环卷积的 k 次幂后不等于f数组说明无解 循环卷积:这个其实就是多项式乘法,这道题目以v

2021CCPC女生赛

A. 公交路线 #include <bits/stdc++.h> using namespace std; int n, x, y, m; int k[20], p[20]; int main() { cin >> n >> x >> y; for (int i = 1; i <= n; i++) cin >> k[i]; cin >> m; for (int i = 1; i <= m

[2021CCPC威海热身赛] Number Theory (打表 推公式)

题意 求 ∑ k = 1 n

2021CCPC广州站C. Necklace

题目:C. Necklace 题意: https://codeforces.com/gym/103415/problem/C ​ 长度为 n 的项链上有 m 个珠子,每个珠子分一段,问最长段长度的最小值 思路:二分+贪心 ​ 每次check贪心地从第一个位置开始,所以一开始偏移量最大为:n-a[m]+a[1]-1,mi表示当前起始位置最大的偏移量,每经过一段区间

《2021CCPC桂林》

只做了几个题。 B. A Plus B Problem: 一开始做的时候思路有点乱,后面理清楚了,就是说不用10进制来维护,用没有进位之后的数来维护,这样每次操作之后就是加1减1的操作了。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef long double

2021CCPC桂林 B. A Plus B Problem

裸线段树板题,非常恶心 #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 10; struct { int l, r, len; int val, suf0, suf9; bool tag0, tag9; } t[N << 2]; int a[2][N], b[N]; inline void update(int p) { if (t[p << 1 | 1

2021CCPC中国大学生程序设计竞赛女生专场 G. 3G网络

题目链接 题目描述 解题思路 当 r->∞ 时,圆相当于几乎重合,所以答案是1/n 代码 #include<iostream> #include<stdio.h> #include<vector> #include<string> #include<algorithm> #include<map> #include<queue> using namespace std; const int maxn = 1e5+7

2021CCPC中国大学生程序设计竞赛女生专场 K 音乐游戏

题目链接 题目描述 解题思路 这是一个签到题,只要统计_的个数就行了 代码: #include<iostream> #include<stdio.h> #include<vector> #include<string> #include<algorithm> #include<map> #include<queue> using namespace std; const int maxn = 1e5+7; const

【2021CCPC河南省赛】欢度佳节

博客主页: https://blog.csdn.net/qq_50285142欢迎点赞

2021CCPC女生赛C. 连锁商店 状压DP

原题链接:https://codeforces.ml/gym/103389/problem/C 目录 题意分析Code 题意 有n个景点,下标代表高度,接着又m条路线,一定从低到高,每个景点都属于不同公司,每个公司都有不同的红包政策,但每个公司的红包只能领一个,问从1到 [

2021CCPC河南省赛(部分代码待更)

最终A了8道题, 喜提一金, 也是在意料之中。 第一次三个队友集中在一起打比赛, 也体验了一下线下的氛围, 还是比较赞的, 自己也不是说毫无作用, 帮助团队做了几道题, 还是挺满意的。 1002 emmmmm, 我当时是正着看的题, 所以率先看到了这道题, 我感觉是能写, 但刚开始这道题A的并不多, 并且我的

2021CCPC重赛 1005 Monopoly

2021CCPC重赛 1005 Monopoly hdu链接 Solution 注意对负数的取模方法,注意特判0 查找最后一个小于等于x的方法: 使用 pair <元素值乘 -1 ,数组内下标>,排序后查找第一个大于等于 -x 的值 代码 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #in

2021CCPC网络赛(重赛)F. Nun Heh Heh Aaaaaaaaaaa(DP、简单数论)

题目:Nun Heh Heh Aaaaaaaaaaa 题意:给出一个串s,求出s的子序列中满足前缀为"nunhehheh",后缀为若干个(至少一个)'a'(不能包含其他的字符)组成的串的个数,该串仅仅由前缀和后缀组成。例如:"nunhehheha","nunhehhehaaaa"满足条件,而"nunhehhehba","nunhehheh"则不满足条件。 思路:假设t = &qu

2021CCPC网络赛(重赛) 1011.Jumping monkey

题目大意:给定一棵树,要求你求出对于每个节点,一只猴子从该节点开始跳,每次只能跳向到目标点最短路上权值最大的点为目标点的点,这样的点对于每个节点有多少个。 思路:考虑每个节点对其都无贡献的点,应该是所有点中权值最大的点,从该点出发无法跳向任何其他点。去除该点后,原来次大的

Jumping Monkey 2021CCPC网络赛重赛1011

题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=7136 题意:   给一颗n个点的树,每个点标记为1到n,每个点有自己的权值ai(保证不一样)。有只猴子可以从u点跳到v点,当且仅当u点到v点的最短路径上权值最大的点是v点。问猴子从k点开始(k∈【1.n】)最大可以跳多少个点。对于样例二,猴子

2021CCPC网络赛(重赛)——1005.E.Monopoly

#include<bits/stdc++.h> #define ll long long #define fir first #define sec second #define PB push_back #define ALL(a) begin(a),end(a) #define mem(a,n) memset(a,n,sizeof(a)) #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namesp

2021CCPC网络赛E Easy Math Problem

传送门 这是我接管阿烜的博客后的第一篇题解,还是好好写一写罢。 我们可以考虑枚举\(i\),用矩阵来快速计算第二种转移的方式,这需要我们对于\(\forall i\in [1,n]\)快速求出\(f(i)=\sum_{j=1}^n\binom{i+j}{j}b^j\),其中\(b\)是第二种转移方式的转移矩阵。 对于\(f(i+1)\),用递推的方法

2021CCPC online网络赛8.28题解

2021CCPC online网络赛 1001、Cut The Wire 签到题,按照题意来思考就行 开题时间:0:05 交题时间:0:39 问题:手速慢了,其次就是思考分类时过于复杂了,但又不能快速想清楚 #include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ ios::sync_with_stdio(fa

2021CCPC网络选拔赛题解

A 签到 F 找规律,发现(n+2)^2-n^2=4n+4=4(n+1),于是4个凑一组,按余数进行讨论即可,code略 I 签到 #include<bits/stdc++.h> using namespace std; int n; long long ans; char s[100007]; map<pair<int,int>,int>mp; int main() { int T;scanf("%d",&T); whi

2021CCPC华为云挑战赛 部分题题解

CDN流量调度问题 题看了没多久就看出来是\(DP\)的题,然后就设了状态\(f[i][j]\)表示到前\(i\)个点时已经用了\(j\)个节点的最小总代价,结果发现转移时\(O(nm^2)\),但这样只会T掉的,于是就顺利应当的进入了DP优化的思维,奈何无论用上什么伎俩都好像有点不太奏效,以下给出暴力的代码: rep(

【题解】2021CCPC华为云挑战赛 重叠的子串

2021CCPC华为云挑战赛 重叠的子串 题意 给定一个只含小写字母的字符串\(s\)和\(q\)次询问,每次询问给定一个字符串,以\(s[l...r]\)的形式给出,判断\(s\)中是否存在两个或多个出现的有重叠部分的给定子串。比如在“ababa”​中,两个 “aba” 子串就重叠于中间的字母 “a”,而两个 “ab”