首页 > 其他分享 >CCNUACM寒假培训第二周周赛部分题解(ACF)

CCNUACM寒假培训第二周周赛部分题解(ACF)

时间:2023-01-01 15:33:38浏览次数:37  
标签:周赛 const ACF 字符 int 题解 最大值 long define

A题大意:

给出n个数,每次可以选择任意一个数进行加一操作,可执行k次,求最大值可能的最大最小值

考虑最大值最大,即所有操作都对初始n个数中的最大值进行,答案即max(a1,.....,an)+k。

考虑最大值最小,即所有操作先让n个数都变成初始最大值,此时答案为初始最大值。

如果存在多余的操作未彻底使用,则均摊到每一个数上(类似抽屉原理思想),则可得到最大值可能的最小值。

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int INF = 1e18;
const int logn = 21;
const int N = 1e6 + 10;

void solve() {
    int n, k;
    cin >> n >> k;
    vector<int> a(n + 1);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a.begin()+1, a.end());
    int num = 0;
    for(int i = 1; i <= n; i++) {
        num += (a[n]-a[i]);
    }
    int maxn = a[n] + k;
    int minn;
    if(num >= k) minn = a[n];
    else minn = (k - num + n - 1) / n + a[n];
    cout << maxn << " " << minn << endl; 
}

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    int T = 1;
    //cin >> T;
    while (T--) solve();
    return 0;
}

C题大意

给出一个字符串,第一次出现的字符贡献为2,否则为1,计算贡献

贡献为字符串长度+字符种类数,每个字符贡献至少为1,并且第一次出现的字符贡献再+1,后者即字符种类数。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int INF = 1e18;
const int logn = 21;
const int N = 1e6 + 10;

void solve() {
    int n;
    cin >> n;
    string s;
    cin >> s;
    s = " " + s;
    set<char> st;
    for(int i = 1; i <= n; i++) {
        st.insert(s[i]);
    }
    cout << n + st.size() << endl;
}

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    int T = 1;
    //cin >> T;
    while (T--) solve();
    return 0;
}

F题大意:

给出一个字符串,删去其中的?

对于每个字符判断是否为?,不是就输出,记得行末回车和字符串初始化

#include<bits/stdc++.h>
using namespace std;
char a[2000000];
int main()
{
	//freopen("a10.in","r",stdin);
	//freopen("a10.out","w",stdout);
 	int t;
 	scanf("%d",&t);
 	while (t--)
 	{
 		scanf("%s",a+1);
 		int n=strlen(a+1);
 		for (int i=1;i<=n;i++) if (a[i]!='?') printf("%c",a[i]);
 		printf("\n");
 	}
 	return 0;
}

标签:周赛,const,ACF,字符,int,题解,最大值,long,define
From: https://www.cnblogs.com/by-w/p/17018118.html

相关文章

  • [第326场周赛]分解质因数,埃氏筛,欧拉筛
    leetcode新年福利,本次周赛没有Hard难度的题目,然后我就第一次AK了~总的来说不是很难,涉及到了三个算法,在此记录一下。分解质因数题目链接:​​6279.数组乘积中的不同质因数数......
  • [POI2007]GRZ-Ridges and Valleys 题解
    (2022-12-28)AcWing1106洛谷P3456题目大意找出一个图中所有大于(或小于)周围相邻的非连通块点的所有连通块个数。就是说,对于一个连通块:如果它周围的点都低于它,那么山......
  • [USACO22DEC] Cow College B 题解
    洛谷P8897AcWing4821题目描述有\(n\)头奶牛,每头奶牛愿意交的最大学费位\(c_i\),问如何设置学费,可以使赚到的钱最多。\(1\len\le10^5,1\lec_i\le10^6\)做法分析......
  • 武汉工程大学第五届程序设计新生赛 I题 题解
    (2022,12,3)原题链接(来自牛客竞赛)抽象题意题目有点长,我们需要抽象出一个模型:一个长度为\(n\)的序列\(a_i\),从\(a_1\)开始向后跳,每次可以从\(a_i\)跳到下一位\(a_{i+1}\),......
  • 洛谷P4146 序列终结者 题解 splay tree
    题目链接:​​https://www.luogu.com.cn/problem/P4146​​题目大意:支持:区间更新(+x)区间翻转区间查询(最大值)解题思路:几乎和​​AcWing2437.Splay​​这题一模一样。示例程......
  • ACWING 第 84 场周赛 ABC
    来水一篇博客:)https://www.acwing.com/activity/content/competition/problem_list/2742/难度偏低(三题都cf800的难度),就不写详解了4788.最大数量#include<bits/stdc++......
  • LeetCode第 94 场双周赛
    1.最多可以摧毁的敌人城堡数目题目最多可以摧毁的敌人城堡数目Solution可以第一重循环找到\(1\),然后从该位置分别向左和向又寻找\(-1\),寻找过程中遇到\(1\)则停止,不......
  • CF1770D Koxia and Game 题解
    47min时过C降智50min做不出D。果然晚上容易降智。题意不想复述,好长。linktoCF|linktoLuogu合理猜测留给后手的两个数字必须相等。证明为若不相等,则后手可以......
  • 洛谷 P2395 BBCode转换Markdown 题解
    洛谷P2395BBCode转换Markdown题解题目传送门:here.一道毒瘤的大模拟,给了你一部分的BBCode和Markdown语法,叫你转换。如下表:BBCodeMarkdown[h1]文字[/h1......
  • LeetCode周赛325
    到目标字符串的最短距离题目SolutionclassSolution{public:intclosetTarget(vector<string>&words,stringtarget,intstartIndex){intn=wo......