Codeforces Round #531 (Div. 3)
A:瞎猜。
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
if(n%==||n%==){
cout<<<<endl;
} else{
cout<<<<endl;
}
}
B:随便搞
#include <bits/stdc++.h>
using namespace std;
int n,k;
int a[],ans[];
set<int>s[];
void cloro(int id,int clo){
while (s[a[id]].count(clo)){
clo++;
if(clo==k+){
clo=;
}
}
ans[id]=clo;
s[a[id]].insert(clo);
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>k;
for(int i=;i<=n;i++)
cin>>a[i];
int now = ;
bool flag = false;
for(int i=;i<=n;i++){
if(s[a[i]].size()==k){
cout<<"NO"<<endl;
exit();
}
cloro(i,now);
now++;
if(now==k+) {
now = ;
flag = true;
}
}
if(!flag&&now<k){
cout<<"NO"<<endl;
exit();
}
cout<<"YES"<<endl;
for(int i=;i<=n;i++)
cout<<ans[i]<<' ';
}
C:傻逼题
#include <bits/stdc++.h>
using namespace std;
int n,x,y,a[];
int dp[];
set<int> s;
int main() {
ios::sync_with_stdio(false);
cin>>n>>x>>y;
for(int i=;i<=n;i++)
cin>>a[i];
if(x>y){
cout<<n<<endl;
} else if(x<=y){
int num = ;
for(int i=;i<=n;i++){
if(a[i]<=x){
num++;
}
}
int ans = ;
while (num>){
ans++;
num-=;
}
cout<<ans<<endl;
}
}
D:贪心的 六种变换随便搞
我写的应该是有问题的,但是ppt了就不想改了,估计会掉。
upd 1/10 15:20 hhhh果然掉了 但是是我自己傻屌写错了,思路没有问题。 代码已更新
#include <bits/stdc++.h>
using namespace std;
string s;int n;
int a[];
void slove(int c01,int c02,int c10,int c12,int c20,int c21){
for(int i=n-;i>=;i--){
if(s[i]==''){
if(c02) {
s[i] = '';
c02--;
}
else if(c01) {
s[i] = '';
c01--;
} } else if(s[i]==''){
if(c12){
c12--;
s[i]='';
}
}
}
for(int i=;i<n;i++){
if(s[i]==''){
if(c20){
c20--;
s[i]='';
} else if(c21){
c21--;
s[i]='';
}
} else if(s[i]==''){
if(c10){
s[i]='';
c10--;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>s;
for(int i=;i<n;i++){
a[s[i]-'']++;
}
int c01=,c02=,c10=,c12=,c20=,c21=;
if(a[]>n/){
if(a[]>n/){
c02=a[]-n/;
c12=a[]-n/;
} else{
if(a[]>n/) {
c21 = a[] - n / ;
c01 = a[]-n/;
}
else {
c02 = n / - a[];
c01=n/-a[];
}
}
} else if(a[]>n/){
if(a[]>n/){
c10=a[]-n/;
c20=a[]-n/;
} else{
c10=n/-a[];
c12=n/-a[];
}
} else if(a[]>n/){
c20=n/-a[];
c21=n/-a[];
}
slove(c01,c02,c10,c12,c20,c21);
cout<<s<<endl;
}
E:每个数都可以确定一个区间,然后我们求不确定的区间的长度,答案就是 1<<(len-1)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = ;
int n;int a[];
ll qpow(ll a,ll x){
ll res = ;
while (x){
if(x&)
res=(res*a)%mod;
a=(a*a)%mod;
x/=;
}
return res;
}
map<int,int> m;
vector<int> v [];
int pre[];
int main() {
ios::sync_with_stdio(false);
cin>>n;
int id = ;
for(int i=;i<=n;i++) {
cin >> a[i];
if(m.count(a[i])){
v[m[a[i]]].push_back(i);
} else{
m[a[i]]=id;
v[id].push_back(i);
id++;
}
}
for(int i=;i<id;i++){
pre[v[i][]]++;
pre[v[i][v[i].size()-]]--;
}
ll cnt = ;
for(int i=;i<=n;i++){
pre[i]+=pre[i-];
if(pre[i]==)
cnt++;
}
cout<<qpow(,cnt-)<<endl;
}
F:状压dp。 数据范围很明显了。。 先预处理出来任意两行相邻的时候对答案的贡献,以及任意两行做头尾(就是第一行和最后一行)的贡献,然后dp,dp的时候枚举第一行是啥。
#include <bits/stdc++.h>
using namespace std;
int a[][],n,m;
int b[][],c[][],ans;
int f[<<][];
int slove(int id){
for(int i=;i<(<<n);i++)
for(int j=;j<n;j++)
f[i][j]=;
f[<<id][id]=1e9;
for(int i=;i<(<<n);i++){
for(int j=;j<n;j++){
if(i&(<<j)){
for(int k=;k<n;k++){
if(i&(<<k))continue;
f[i|(<<k)][k]=max(f[i|(<<k)][k],min(f[i][j],b[j][k]));
}
}
}
}
int ans = ;
for(int i=;i<n;i++){
if(i==id)continue;
ans = max(ans,min(c[id][i],f[(<<n)-][i]));
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<n;i++){
for(int j=;j<m;j++){
cin>>a[i][j];
}
}
if(n==){
int ans = 1e9;
for(int i=;i<m-;i++)
ans = min(ans,abs(a[][i]-a[][i+]));
cout<<ans<<endl;
return ;
}
//预处理第i行与第j行相邻
for(int i=;i<n;i++){
for(int j=;j<n;j++){
b[i][j]=1e9;
for(int k=;k<m;k++){
b[i][j]=min(b[i][j],abs(a[i][k]-a[j][k]));
}
}
}
//i是第一行,j是最后一行
for(int i=;i<n;i++){
for(int j=;j<n;j++){
if(i==j) continue;
c[i][j]=1e9;
for(int k=;k<m-;k++)
c[i][j]=min(c[i][j],abs(a[i][k+]-a[j][k]));
}
}
int ans = ;
for(int i=;i<n;i++){
ans = max(ans,slove(i));
}
cout<<ans<<endl;
}
Codeforces Round #531 (Div. 3)的更多相关文章
- Codeforces Round #531 (Div. 3) ABCDEF题解
Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...
- Codeforces Round #531 (Div. 3) F. Elongated Matrix(状压DP)
F. Elongated Matrix 题目链接:https://codeforces.com/contest/1102/problem/F 题意: 给出一个n*m的矩阵,现在可以随意交换任意的两行, ...
- Codeforces Round #531 (Div. 3) E. Monotonic Renumeration (构造)
题意:给出一个长度为\(n\)的序列\(a\),根据\(a\)构造一个序列\(b\),要求: 1.\(b_{1}=0\) 2.对于\(i,j(i\le i,j \le n)\),若\(a_{i ...
- Codeforces Round #531 (Div. 3) D. Balanced Ternary String (贪心)
题意:给你一个长度为\(3*n\)的字符串,要求修改最少的次数,使得字符串中\(0,1,2\)的个数相同,并且在最少次数的情况下使字典序最小. 题解:贪心,\(0\)一定放在前面,\(1\)和\(2\ ...
- Codeforces Round #531 (Div. 3) C. Doors Breaking and Repairing (博弈)
题意:有\(n\)扇门,你每次可以攻击某个门,使其hp减少\(x\)(\(\le 0\)后就不可修复了),之后警察会修复某个门,使其hp增加\(y\),问你最多可以破坏多少扇门? 题解:首先如果\(x ...
- Codeforces Round #531 (Div. 3) B. Array K-Coloring (结构体排序)
题意:给你\(n\)个数字,用\(k\)种颜色给他们涂色,要求每个数字都要涂,每种颜色都要用,相同的数字不能涂一样的颜色. 题解:用结构体读入每个数字和它的位置,然后用桶记录每个数字出现的次数,判断是 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
随机推荐
- OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2
3.5.Canny边缘检测 OpenCV提供了Canny边缘检测函数来识别边缘.它有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用最大抑制(NMS).在检测到的边缘上使用双阀值去除 假 ...
- 使用python实现深度神经网络 2(转)
https://blog.csdn.net/oxuzhenyi/article/details/73026796 导数与梯度.矩阵运算性质.科学计算库numpy 一.实验介绍 1.1 实验内容 虽然在 ...
- No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer
异常信息如下所示: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for cla ...
- shell编程学习笔记(七):Shell中将指定内容输出到文件中
我们这里把echo要打印的内容输出到文件中 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script06.sh 开始编写script ...
- 面试汇总——知道什么是同源策略吗?那怎么解决跨域问题?知道 JSONP 原理吗?
本文是面试汇总分支——知道什么是同源策略吗?那怎么解决跨域问题?知道 JSONP 原理吗?. 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能, ...
- 删除 nuget 文件夹内容
vs2017 ->工具->选项->NuGet 包管理器->清除所有NuGet缓存
- Navicat Win 和 Mac 视图类快捷键对比
Navicat 查询是根据用户需求从数据库提取可读格式的数据,Navicat 提供两个强大的工具与 SQL 查询工作:查询创建工具和查询编辑器,查询创建工具可视觉化地创建查询,查询编辑器可直接编辑查询 ...
- Android开发导出apk报错:Unable to build: the file dx.jar was not loaded from the SDK folder
问题背景 此问题一般出现在,同时使用了Eclipse和Android Studio,eclipse是不会去下载最新的Android的相关tools,但是studio有时候会自动更新最新的build-t ...
- BizTalk日志自动发送邮件通知
更多内容请查看:BizTalk动手实验系列目录 BizTalk 开发系列 BizTalk 培训/项目开发/技术支持请联系:Email:cbcye ...
- ie11开发者模式打开空白
Internet选项——高级——取消 禁用脚本调试(Internet explorpr)