Codeforces Round 862 (Div. 2)

Problem - A - Codeforces

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
const int N=1e3+10;
int a[N];
int n;
void solve() {
	cin>>n;
	int ans=0;
	for(int i=1;i<=n;i++) cin>>a[i],ans^=a[i];
	if(n%2==1){
		for(int i=0;i<(1<<8);i++){
			if((ans^i)==0){
				cout<<i<<endl;
				return;
			}
		}
		cout<<-1<<endl;
	}
	else{
		if(ans==0) cout<<0<<endl;
		else cout<<-1<<endl;
	}
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t=1;
    cin>>t;
	while(t--) {
		solve();
	}
	return 0;
}

Problem - B - Codeforces 

长度为n的字符串
操作有且只有一次,刚好一次
操作:选择一个字符,将它放在开头

输出字典序最小的字符串

先找到最小的字符是哪一个,然后从后往前遍历,找到第一个和最小字符相同的,将它放在开头

AC代码:

#include<bits/stdc++.h>
#define endl '\n'
//#define int long long
using namespace std;
int n;
string s;
void solve() {
	cin>>n;
	cin>>s;
	char minn='z';
	for(int i=0;i<(int)s.size();i++){
		if(minn>s[i]) minn=s[i];
	}
	int idx=-1;
	for(int i=(int)s.size()-1;i>=0;i--){
		if(s[i]==minn){
			idx=i;
			break;
		}
	}
	cout<<s[idx];
	for(int i=0;i<(int)s.size();i++){
		if(i==idx) continue;
		cout<<s[i];
	}
	cout<<endl;
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t=1;
    cin>>t;
	while(t--) {
		solve();
	}
	return 0;
}

Problem - C - Codeforces

 数形结合,从图中可以看出,找最接近切线的两条线,判断是否和抛物线有交点即可(用求根公式)

注意:当取pos-1时,pos的范围应在1到s.size()

 AC代码:

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int n, m;
int k;
void solve() {
	cin >> n >> m;
	vector<int>ans;
	while (n--) {
		cin >> k;
		ans.push_back(k);
	}
	sort(ans.begin(), ans.end());
	while (m--) {
		int a, b, c;
		cin >> a >> b >> c;
		double k1 = b + 2 * sqrt(a * c);
		double k2 = b - 2 * sqrt(a * c);
		int pos = lower_bound(ans.begin(), ans.end(), k1) - ans.begin();
		int pos1 = lower_bound(ans.begin(), ans.end(), k2) - ans.begin();
		if (pos>=0&&pos<(int)ans.size()&&(b - ans[pos]) * (b - ans[pos])-4*a*c< 0) {
			cout << "Yes" << endl;
			cout << ans[pos] << endl;
		} else if (pos>0&&pos<(int)ans.size()+1&& (b - ans[pos - 1]) * (b - ans[pos - 1]) - 4 * a * c < 0) {
			cout << "Yes" << endl;
			cout << ans[pos - 1] << endl;
		}
		else if (pos1>=0&&pos1<(int)ans.size()&&(b - ans[pos1]) * (b - ans[pos1])-4*a*c < 0) {
			cout << "Yes" << endl;
			cout << ans[pos1] << endl;
		} else if (pos1>0&&pos1<(int)ans.size()+1&& (b - ans[pos1 - 1]) * (b - ans[pos1 - 1]) - 4 * a * c < 0) {
			cout << "Yes" << endl;
			cout << ans[pos1 - 1] << endl;
		}else{
			cout<<"No"<<endl;
		}
	}
	cout << endl;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t = 1;
	cin>>t;
	while (t--) {
		solve();
	}
	return 0;
}

相关推荐

  1. Codeforces Round 912 (Div. 2)

    2023-12-23 00:56:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 00:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 00:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 00:56:02       82 阅读
  4. Python语言-面向对象

    2023-12-23 00:56:02       91 阅读

热门阅读

  1. Macbook安装nvm以切换node版本

    2023-12-23 00:56:02       67 阅读
  2. nginx upstream 6种负载均衡策略介绍

    2023-12-23 00:56:02       53 阅读
  3. Android开发中实时语音开发之华为实时语音识别

    2023-12-23 00:56:02       65 阅读
  4. npm的使用技巧

    2023-12-23 00:56:02       52 阅读
  5. 基于MATLAB的模板匹配实现英文字母识别

    2023-12-23 00:56:02       56 阅读
  6. 做开发死路一条?一名五年全栈的看法

    2023-12-23 00:56:02       62 阅读
  7. junit-mock-controller

    2023-12-23 00:56:02       60 阅读
  8. Linux环境下通过journal命令查看和管理日志

    2023-12-23 00:56:02       61 阅读
  9. 基于粒子群算法的抽水蓄能电站优化调度研究

    2023-12-23 00:56:02       57 阅读
  10. C语言—每日选择题—Day61

    2023-12-23 00:56:02       56 阅读