首页 > 其他分享 >ABC363

ABC363

时间:2024-07-26 14:10:14浏览次数:12  
标签:std cout int namespace link ABC363 using

A

link

判断即可。

点击查看代码
#include<bits/stdc++.h>

using namespace std;

int r;

signed main(){
	
	cin >> r;
	if(r < 100) cout << 100-r;
	else if(r < 200) cout << 200-r;
	else if(r < 300) cout << 300-r;
	
	return 0;
	
} 

B

link

取最大的\(p\)个,判断最小的那个要几天才能完成。

点击查看代码
#include<bits/stdc++.h>

using namespace std;

int n,t,p;
int l[105];

signed main(){
	
	cin >> n >> t >> p;
	for(int i = 1;i <= n;++ i) cin >> l[i];
	sort(l+1,l+1+n);
	int w = l[n-p+1];
	cout << max(0,t-w);
	
	return 0;
	
}

C

link

把每个字母有多少个记录一下,搜索,然后从\(1\)开始取\(k\)长度的子串,判断是否回文,不是回文统计答案。

点击查看代码
#include<bits/stdc++.h>

using namespace std;

int n,k;
char s[15];
char ans[15];
int vs[35];
int res;

void dfs(int x){
	//cout << x << endl;
	if(x > n){
		for(int i = 1;i+k-1 <= n;++ i){
			bool f = 0;
			for(int j = 1;j <= k;++ j){
				if(ans[i+j-1] != ans[i+k-j]){
					f = 1;
					break;
				}
			}
			if(!f) return;
		}
		res++;
		return;
	}
	for(char i = 'a';i <= 'z';++ i){
		if(!vs[i-'a']) continue;
		ans[x] = i;
		vs[i-'a']--;
		dfs(x+1);
		vs[i-'a']++;
	}
}

signed main(){
	
	cin >> n >> k >> s+1;
	
	for(int i = 1;i <= n;++ i)
		vs[s[i]-'a']++;
	
	dfs(1);
	
	cout << res;
	
	return 0;
	
}

标签:std,cout,int,namespace,link,ABC363,using
From: https://www.cnblogs.com/wmmdbk/p/18325231

相关文章

  • [ABC363G] Dynamic Scheduling 与 P4511 [CTSC2015] 日程管理
    思路:对于插入操作,设插入\(\{t,p\}\):若当前\(1\simt\)有空位,那么就放进去。否则,\(1\simt\)是被塞满了的:首先容易想到的是找到\(1\simt\)中贡献最小的那个工作,若贡献比\(p\)还小,可以与之替换掉。但是假了,考虑这样一种情况:在\(1\simt\)外有一个更小的......
  • AT_abc363_e [ABC363E] Sinking Land Solution
    题目大意:有一座矩形岛屿,被分为\(H\timesW\)的网格,四周与海水接触,给定时间\(Y\)年,最初海平面位于高度\(0\\text{m}\),每年海水上升\(1\\text{m}\),请求出每年未被海水淹没的格子数(高度小于等于海水高度即为淹没)。显然有点类似于广搜的想法,用一个队列存储与海水接触的方......
  • ABC363 DEF 题解
    ABC363DEF题解前情提要:赛时过了ABCE。D-PalindromicNumber题目链接其实赛时已经看出了一些性质,但没想完做法,赛后看题解才发现这么简单/fn首先,为了方便,我们不把\(0\)视作回文数(因此需要特判一下\(n=1\)的情况)。下面要证明:\(d\)位回文数有\(10^{\left\lfloor\f......