cf1189解题报告
cf1189div2解题报告
A
答案要不是一串要不就是去掉最后一个字母的两串
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=107;
int a[N<<2],n;
int main() {
scanf("%d",&n);
int js=0;
for(int i=1;i<=n;++i) {
scanf("%1d",&a[i]);
js+=a[i];
}
if(n!=1&&js==n-js) {
printf("2\n");
for(int i=1;i<n;++i) printf("%d",a[i]);
printf(" ");
printf("%d",a[n]);
} else {
printf("1\n");
for(int i=1;i<=n;++i) printf("%d",a[i]);
}
return 0;
}
B
cf好喜欢构造呀。
\(1-3-5-7-9-10-8-6-4-2\)
这样构造应该是最优解。
然后check输出
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+7;
int n,a[N],b[N];
int main() {
scanf("%d",&n);
for(int i=1;i<=n;++i) {
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
int js=0;
for(int i=1;i<=n;i+=2) b[++js]=a[i];
for(int i=(n&1)?n-1:n;i>=1;i-=2) b[++js]=a[i];
b[0]=b[n],b[n+1]=a[1];
for(int i=1;i<=n;++i)
if(b[i]>=b[i-1]+b[i+1]) return puts("NO"),0;
puts("YES");
for(int i=1;i<=n;++i)
printf("%d ",b[i]);
return 0;
}
C
虽然有很短的代码,但我还是写了线段树,好傻逼啊
#include <bits/stdc++.h>
#define ls rt<<1
#define rs rt<<1|1
using namespace std;
const int N=2e5+7;
int n,m,ans,tot[N<<2],sum[N<<2];
void build(int l,int r,int rt) {
if(l==r) {
scanf("%d",&tot[rt]);
return;
}
int mid=(l+r)>>1;
build(l,mid,ls);
build(mid+1,r,rs);
tot[rt]=(tot[ls]+tot[rs])%10;
sum[rt]=sum[ls]+sum[rs]+((tot[ls]+tot[rs])>=10);
// printf("sum[%d]=%d tot=%d\n",rt,sum[rt],tot[rt]);
}
int query(int l,int r,int L,int R,int rt) {
if(L<=l&&r<=R) {
ans+=sum[rt];
return tot[rt];
}
int mid=(l+r)>>1;
if(L<=mid&&R>mid) {
int a=query(l,mid,L,R,ls);
int b=query(mid+1,r,L,R,rs);
if(a+b>=10) ans++;
return (a+b)%10;
} else if(L<=mid) return query(l,mid,L,R,ls);
else return query(mid+1,r,L,R,rs);
}
int main() {
scanf("%d",&n);
build(1,n,1);
scanf("%d",&m);
for(int i=1,l,r;i<=m;++i) {
scanf("%d%d",&l,&r);
ans=0;
int tmp=query(1,n,l,r,1);
printf("%d\n",ans);
}
return 0;
}
D1
使得一颗树上边的权值任意,只要不出现度数为2的点就行。
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+7;
int n,ru[N];
int main() {
scanf("%d",&n);
for(int i=1;i<n;++i) {
int l,r;
scanf("%d%d",&l,&r);
ru[l]++,ru[r]++;
}
for(int i=1;i<=n;++i)
if(ru[i]==2) return puts("NO"),0;
puts("YES");
return 0;
}
E
\]
\]
左右乘\((a_i-a_j)\)
\]
\]
map统计答案就行了
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=3e5+7;
int n,k,p,a[N];
unordered_map<int,int> Hash;
int pow4(int a) {return 1LL*a*a%p*a%p*a%p;}
int main() {
scanf("%d%d%d",&n,&p,&k);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
ll ans=0;
for(int i=1;i<=n;++i) {
int tmp=((pow4(a[i])-1LL*k*a[i]%p)%p+p)%p;
ans+=Hash[tmp];
Hash[tmp]++;
}
cout<<ans<<"\n";
return 0;
}
cf1189解题报告的更多相关文章
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- BZOJ 1051 最受欢迎的牛 解题报告
题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4438 Solved: 2353[S ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- 习题:codevs 1035 火车停留解题报告
本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...
- 习题: codevs 2492 上帝造题的七分钟2 解题报告
这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...
- 习题:codevs 1519 过路费 解题报告
今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
- LeetCode 解题报告索引
最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中...... ...
随机推荐
- sqlserver获得数据库非聚集索引的代码
创建Index DECLARE @zindex_sql NVARCHAR(max); SET @zindex_sql = N''; SELECT @zindex_sql = @zindex_sql + ...
- 探索ASP.NET MVC5系列
探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session) 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存) 探索ASP.NET MV ...
- NET MVC 上传文件
1.HTML @using (Html.BeginForm("UploadFile", "Student", FormMethod.Post, new { en ...
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- 事件绑定+call apply指向
JS高级 事件—— 浏览器客户端上客户触发的行为都称为事件 所有事件都是天生自带的,不需要我们去绑定,只需要我们去触发,通过obj.事件名=function(){ } 事件名:onmousemove: ...
- English--七种句子成分概述
English|七种句子成分概述 现代英语的语法是非常严谨的,英语句子的成分与汉语的句子成分有很大的区别.所以在学习语法的开始,需要上文讲到的句型作为骨架支撑,还需要明白句子的成分是什么,以及个各自的 ...
- 基础的python数据分析
1. 单行注释 #print("hello word;") 2. 多行注释 ''' print("hello word;") print("hello ...
- 几种线程相关的map介绍
Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的. 看下面两个场景: 1.当用在方法内的局部变量时,局部变量属于当前线程级别的变量,其他线程访问不了,所以这时也不存在线程安全不 ...
- 浅谈Python设计模式 - 建造者模式
声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 建造者模式 当我们想要创建一个由多个部分构成的对象,而且他们的构建需要一步接一步 ...
- Hadoop-HA集群搭建-rehl7.4
Hadoop-HA集群搭建-rehl7.4 hadoop 无说明需要登录其它机器操作,都是在集群的HD-2-101上执行的命令. 所有安装包地址:百度网盘,提取码:24oy 1. 基础环境配置 1.1 ...