Codeforces_841
A.统计每个字母数量,比较是否超过k。
#include<bits/stdc++.h>
using namespace std; int n,k,cnt[] = {};
string s; int main()
{
ios::sync_with_stdio();
cin >> n >> k >> s;
for(int i = ;i < s.length();i++) cnt[s[i]-'a']++;
for(int i = ;i < ;i++)
{
if(cnt[i] > k)
{
cout << "NO" << endl;
return ;
}
}
cout << "YES" << endl;
return ;
}
B.只要有奇数,First必赢,因为总能到奇数个数为奇数个的情况。
#include<bits/stdc++.h>
using namespace std; int n,a[]; int main()
{
ios::sync_with_stdio();
cin >> n;
int cnt = ;
for(int i = ;i <= n;i++)
{
cin >> a[i];
if(a[i]%) cnt++;
}
if(cnt > ) cout << "First" << endl;
else cout << "Second" << endl;
return ;
}
C.当在[1,x]中随机取一个的时候,最小值期望为x/2,取的次数越多,期望越小。我们把优先次数少的分给大的数。
#include<bits/stdc++.h>
using namespace std; int n,a[],ans[];
struct xx
{
int x,id;
friend bool operator <(xx a,xx b)
{
return a.x > b.x;
}
}b[]; int main()
{
ios::sync_with_stdio();
cin >> n;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= n;i++)
{
cin >> b[i].x;
b[i].id = i;
}
sort(a+,a++n);
sort(b+,b++n);
for(int i = ;i <= n;i++) ans[b[i].id] = a[i];
for(int i = ;i <= n;i++) cout << ans[i] << " ";
cout << endl;
return ;
}
D.首先图是连通的,若有-1的点存在,则必可以通过这个点,dfs把其它点都调整好。
若没有-1的点存在,我们随便选一个点,dfs下去,最后判断这个点是否符合。
#include<bits/stdc++.h>
using namespace std; int n,m,a[],vis[] = {},dep[] = {};
struct xxx
{
int to,id;
xxx(int a,int b):to(a),id(b){};
};
vector<xxx> v[];
vector<int> ans; bool dfs(int now,int pre)
{
vis[now] = ;
for(int i = ;i < v[now].size();i++)
{
int t = v[now][i].to;
if(t == pre || vis[t]) continue;
if(dfs(t,now))
{
dep[now]++;
ans.push_back(v[now][i].id);
}
}
if(a[now] == && dep[now]% == || a[now] == && dep[now]% == ) return ;
return ;
} int main()
{
ios::sync_with_stdio();
cin >> n >> m;
for(int i = ;i <= n;i++) cin >> a[i];
for(int i = ;i <= m;i++)
{
int x,y;
cin >> x >> y;
v[x].push_back(xxx(y,i));
v[y].push_back(xxx(x,i));
}
int ok = ;
for(int i = ;i <= n;i++)
{
if(a[i] == -)
{
dfs(i,);
ok = ;
break;
}
}
if(!ok && dfs(,))
{
cout << - << endl;
return ;
}
cout << ans.size() << endl;
for(int i = ;i < ans.size();i++) cout << ans[i] << " ";
cout << endl;
return ;
}
Codeforces_841的更多相关文章
随机推荐
- 小小知识点(三十一)MU-MIMO和SU-MIMO分别表示什么?
MU-MIMO是“Multi-User Multiple-InputMultiple-Output”的缩写,直译为“多用户多入多出技术”. SU-MIMO是“Single-User Multiple- ...
- 傅立叶变换—FFT(cuda实现)
背景: 无意间看到cuda解决FFT有一个cufft函数库,大体查看了有关cufft有关知识,写了一个解决一维情况的cuda代码,据调查知道cufft在解决1D,2D,3D的情况时间复杂度都为O(nl ...
- PS/2的相关知识
PS/2接口 很多微机上采用PS/2口来连接鼠标和键盘.PS/2接口与传统的键盘接口除了在接口外型.引脚有不同外,在数据传送格式上是相同的.现在很多主板用PS/2接口插座连接键盘,传统接口的键盘可以通 ...
- Java五子棋小游戏(控制台纯Ai算法)
Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...
- 微信小程序--百度地图坐标转换成腾讯地图坐标
最近开发小程序时出现一个问题,后台程序坐标采用的时百度地图的坐标,因为小程序地图时采用的腾讯地图的坐标系,两种坐标有一定的误差,导致位置信息显示不正确.现在需要一个可以转换两种坐标的方法,经过查询发现 ...
- NOIP2004普及组第3题 FBI树
/* 1106: NOIP2004普及组第3题 FBI树 时间限制: 1 Sec 内存限制: 128 MB 提交: 10 解决: 9 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 我 ...
- 对标Eureka的AP一致性,Nacos如何实现Raft算法
一.快速了解Raft算法 Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解和去实现它. 为了提高理解性,Raft 将一致性算法分为了几个部分,包括领导选取(le ...
- Ubuntu 设置中文输入法
环境:新安装的Ubuntu 16.04 LTS 本来打算使用sogou拼音,但是在输入后的提示框中内容为乱码,因此尝试重新安装. 1.sudo apt-get remove sogoupinyin & ...
- MySQL日志及索引
MySQL物理结构: MySQL它是通过文件系统对数据进行储存和管理,从物理结构上分为日志文件和数据文件 日志文件: 日志文件记录了数据库操作的信息和一些错误信息,我们常用的日志文件有:错误日志.二进 ...
- Bootstrap Table的使用详解
Bootstrap Table是基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能.接下来我们来介绍B ...