Codeforces Round #632 (Div. 2)

这一场打的好差呀,这几次艰难上的分全部掉回去了,感觉就像一夜回到了解放前。

说实话,就是被B卡到了,没看到只能从小的放到大的。。。

Little Artem

这个构造就是只让最后一行的最后一个是W就行了,其余都设置成B。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+10;
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==n&&j==m) printf("W");
else printf("B");
}
printf("\n");
}
}
return 0;
}

Kind Anton

这个题目注意看清楚题意,这个只能在序号大的身上放序号小的,所以说先把大的都处理了,再去处理小的。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+10;
int a[maxn],b[maxn];
int sum1[maxn],sum0[maxn];
int main(){
int t;
scanf("%d",&t);
while (t--){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) {
scanf("%d",&a[i]);
sum1[i]=sum1[i-1];
sum0[i]=sum0[i-1];
if(a[i]==1) sum1[i]++;
if(a[i]==-1) sum0[i]++;
}
int flag=0;
for(int i=1;i<=n;i++) scanf("%d",&b[i]);
for(int i=n;i>=1;i--){
if(b[i]>a[i]){
if(sum1[i-1]) continue;
flag=1;
}
else if(b[i]<a[i]){
if(sum0[i-1]) continue;
flag=1;
}
}
if(!flag) printf("YES\n");
else printf("NO\n");
}
}

Eugene and an array

这个我自己写的方法非常复杂,不建议使用,来说说我看题解的方法吧。

去遍历这个给定的序列,求以 \(i\) 这个节点为右端点,满足条件的序列有多少。

因为左端点到右端点肯定是一个区间,每次就加这个区间的长度。

对于一个点 \(i\) 如果这个位置的前缀和之前出现过,那么这个左端点一定要变化,变化到不能加上这段和为0的子段,也就是之前出现过的位置+1则是这个左端点的新位置,但如果这个左端点已经在这个位置的右边了,则不需要更新。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=5e5+10;
map<ll,ll>mp;
int main(){
int n;
scanf("%d",&n);
mp[0]=1;
ll sum=0,last=0,ans=0;
for(int i=1,x;i<=n;i++){
scanf("%d",&x);
sum+=x;
if(mp[sum]) last=max(mp[sum],last);
ans+=i-last;
mp[sum]=i+1;
}
printf("%lld\n",ans);
return 0;
}

Challenges in school №41

我觉得这个题目挺好,但是我没有做好,可惜了。最后看的题解。

题目大意:

每一个人头有偏向,左边或者右边。如果有两个人的脸面对面,则可以对这一对进行操作,即左边的脸转向左边,右边的脸转向右边,问是否有一种转向的方法使得恰好k秒转完。注意:每一秒可以把这个序列所有的都转完,也可以只选择一部分。

题解:

这个首先我们可以求出最小的时间,然后也可以求出最多的时间,只要这个k在这个时间范围内即可完成任务,那怎么构造这个方法呢?其实就是把最小的时间补到k就行了,如果小于k,那就一个一个的转,如果等于了,那就按照正常的去一次性的转。

我觉得这个代码写的很漂亮,可以看一下。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=3e6+10;
vector<int>v[maxn];
char s[maxn];
int n,k,mins,maxs; void solve(){
int p=0,num=0,cur=mins;
while(cur<k){
printf("1 %d\n",v[p][num]);
num++;
if(num==v[p].size()){
num=0;
p++;
}
else cur++;
} printf("%d",v[p].size()-num);
for(int i=num;i<v[p].size();i++){
printf(" %d",v[p][i]);
}
printf("\n");
p++;
for(;p<mins;p++){
printf("%d",v[p].size());
for(int j=0;j<v[p].size();j++){
printf(" %d",v[p][j]);
}
printf("\n");
}
} void check(int p){
for(int i=1;i<=n;){
if(s[i]=='R'&&s[i+1]=='L'){
s[i]='L',s[i+1]='R';
v[p].push_back(i);
i+=2;
}
else i++;
}
} int main(){
mins=maxs=0;
scanf("%d%d%s",&n,&k,s+1);
check(0);
while(v[mins].size()&&mins<=k){
maxs+=v[mins].size();
mins++;
check(mins);
}
// printf("mins=%d\n",mins);
if(mins<=k&&k<=maxs) solve();
else printf("-1\n");
return 0;
}

Kate and imperfection

这个题目其实一看是稍微有一点点的思路的,但是不知道如何去处理。

首先很明确的是把素数和1都放进去,这个是 \(gcd=1\) 的情况,然后就是考虑 \(gcd=2\) 的情况了。

这个怎么构造呢?首先我每放一个数,则这个数的所有的因子都已经在这个集合里面了,所以这个数的产生的贡献就是这个数的最大因子。如果这个数有一个因子没有放进这个集合,那么我就可以先放这个因子,再放这个数。

没有说的很清楚,等官方题解出来再补充吧。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=5e5+10;
int pri[maxn],cnt,v[maxn];
void init() {
cnt = 0;
memset(v,0,sizeof(v));
for (int i = 2; i < maxn; ++i) {
if (!v[i]) {
v[i] = i;
pri[cnt++] = i;
}
for (int j = 0; j < cnt; ++j) {
if (1ll * i * pri[j] >= maxn) break;
v[i * pri[j]] = pri[j];
if (i % pri[j] == 0) break;
}
}
} int main(){
init(),v[1]=1;
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) v[i]=i/v[i];
sort(v+1,v+1+n);
for(int i=2;i<=n;i++) printf("%d ",v[i]);
printf("\n");
return 0;
}

Codeforces Round #632 (Div. 2)的更多相关文章

  1. Codeforces Round #632 (Div. 2) 题解

    空山新雨后,天气晚来秋. 明月松间照,清泉石上流. 竹喧归浣女,莲动下渔舟. 随意春芳歇,王孙自可留.--王维 A. Little Artem 网址:https://codeforces.com/co ...

  2. 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 ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  7. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  8. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

随机推荐

  1. [一起面试AI]NO.9 如何判断函数凸或非凸

    首先定义凸集,如果x,y属于某个集合M,并且所有的θx+(1-θ)f(y)也属于M,那么M为一个凸集.如果函数f的定义域是凸集,并且满足 f(θx+(1-θ)y)≤θf(x)+(1-θ)f(y) 则该 ...

  2. mysql截取函数常用方法 即mysql 字符串 截取-- - 最后带上java字符串截取规则比较

    常用的mysql截取函数有:left(), right(), substring(), substring_index() 下面来一一说明一下: 1.左截取left(str, length) 说明:l ...

  3. 玩家的numpertpry 对象 中 不仅仅要同步 君主武将的等级,阶级也要同步

    因为好多列表 中 需要 批量查询 玩家的等级 和阶级(用来显示玩家icon颜色用的),如果阶级 在numperty 中已同步 的话,就不用批量去查玩家武将列表了.同理如果其他属性也经常用的话也可以同步 ...

  4. AJ学IOS(15)UI之曾经大热的打砖块小游戏

    AJ分享,必须精品 先看效果图 代码 // ViewController.m // 打砖块 // // Created by liufan on 13-8-17. // Copyright (c) 2 ...

  5. Gun N' Rose Team Review

    一看到这个项目就被他的功能给吸引了.回忆起以前看到一个东西很新奇想去网上查询它是什么,但是又不知道应该怎样去描述它,于是在搜索引擎的输入框中键入.删除.键入.删除的可笑经历的时候,我就越发感觉到这个a ...

  6. 装机摸鱼日记01--DDR3AMD专用内存+QHQF(6400T)试水

    前些日子在某鱼入手了两条AMD专用内存,宏想的DDR3-1600MHz-8G内存和一块高贵阿苏斯Z170-P-D3主板,然后某宝600多买了一颗QHQF(当然也可以玩QHQJ,更便宜,估计三百多),准 ...

  7. BJDCTF 2nd web

    先贴一下Y1ng大佬的WP elementmaster 脑洞确实大,源码中hidden的id可以用hex解码成Po. 在URL后面输入Po.php得到一个点, 然后不知所措 被水淹没 实际上这里是要遍 ...

  8. 笔记本安装ubuntu18.08,解决过程中出现的各种问题

    笔记本安装ubuntu18.08,解决过程中出现的各种问题 1.做启动U盘 在官网下载要安装的镜像,使用软碟通制作U盘安装盘 文件 -- 打开 然后 启动 -- 写入硬盘映像 -- 选择你的u盘 -- ...

  9. 是时候学习python了

    “ 学习Pyhton,如何学以致用 -- 知识往问题靠,问题往知识靠” 01 为什么学Python 一直有听说Python神奇,总是想学,虽然不知道为啥.奈何每天写bug,修bug忙得不亦乐乎,总是不 ...

  10. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十(四十六)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...