Replace A

Time limit: 1000 ms
Memory limit: 256 MB

 

You are given a string SS containing only letters A or B. You can take any two adjacent As and replace them by a single A. You perform operations as long as possible. Print the final string.

Standard input

The first line contains the string SS.

Standard output

Print the final string on the first line.

Constraints and notes

  • SS contains between 11 and 100100 characters.
Input Output Explanation
AAABB
ABB

At the first step you can choose the first two As, obtaining AABB.

At the second step, you can choose the only two adjacent As remaining, obtaining ABB.

You cannot do any more operations on this string.

和上次CF的A一样,直接暴力

#include<bits/stdc++.h>
using namespace std;
const int N=;
int main()
{
ios::sync_with_stdio(false);
string s,t;
cin>>s;
set<char>S;
S.insert('A');
while(true)
{
int f=;
for(int i=;s[i]&&f;i++)
{
if(S.count(s[i-])&&S.count(s[i]))
{
f=;
t=s.substr(,i)+s.substr(i+);
}
}
if(f)break;
s=t;
}
cout<<s;
return ;
}

Matrix Balls

Time limit: 1000 ms
Memory limit: 256 MB

 

You are given a matrix AA of size N \times MN×M, containing distinct elements. Initially there is a ball placed in every cell of the matrix. Each ball follows the following movement:

  • If the current cell is smaller than all of its (at most 88) neighbours, the ball stops in this cell;
  • otherwise, the ball moves to the smallest neighbouring cell.

Find for each cell of AA how many balls will end up there, when all the balls stop moving.

Standard input

The first line contains two integers NN and MM.

Each of the next NN lines contains MM integers representing the elements of AA.

Standard output

Print NN lines, each containing MM integers. The j^{th}j​th​​ element on the i^{th}i​th​​ line should represent the number of balls that end up in cell (i, j)(i,j).

Constraints and notes

  • 1 \leq N, M \leq 5001≤N,M≤500
  • 0 \leq A_{i, j} \leq 3*10^50≤A​i,j​​≤3∗10​5​​
Input Output Explanation
3 3
1 3 4
5 6 7
8 9 2
6 0 0
0 0 0
0 0 3

Considering a ball in each cell, matrix[i][j]matrix[i][j] represents the value to which that ball will move

00 represents a ball that does not move to any other location (the cell is the smallest of the 88 neighbours)

1
2
3
4
 
 
0 1 3
1 1 2
5 2 0
 
 
 
 

The value on which the ball will be placed after it moved as described in the statement

1
2
3
4
 
 
1 1 1
1 1 2
1 2 2
 
 
 
 
1 6
10 20 3 4 5 6
1 0 5 0 0 0
 
4 4
20 2 13 1
4 11 10 35
3 12 9 7
30 40 50 5
0 4 0 4
0 0 0 0
4 0 0 0
0 0 0 4

The value on which the ball will be placed after it moved as described in the statement

1
2
3
4
5
 
 
2 2 1 1
2 2 1 1
3 3 5 5
3 3 5 5
 
 
 
 

一个球可以向八个方向滚,滚到最小的里面,问最后每个那里面放几个

必须要记忆化搜索,但是要多搜几个方向的

#include<bits/stdc++.h>
using namespace std;
const int N=;
int a[N][N],b[N][N],n,m;
int d[][]= {,,,,,-,,,,-,-,,-,,-,-};
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],b[i][j]=;
int f=;
while(f)
{
f=;
for(int i=; i<n; i++)
for(int j=; j<m; j++)
if(b[i][j])
{
int x=i,y=j;
for(int k=; k<; k++)
{
int tx=i+d[k][],ty=j+d[k][];
if(!(tx<||tx>=n||ty<||ty>=m)&&a[tx][ty]<a[x][y])
x=tx,y=ty;
}
if(x!=i||y!=j)
b[x][y]+=b[i][j],b[i][j]=,f=;
}
}
for(int i=; i<n; i++)
{
for(int j=; j<m; j++)
cout<<b[i][j]<<" ";
cout<<"\n";
}
return ;
}

按照数不同往下搜索

#include<bits/stdc++.h>
using namespace std;
const int N=3e5+;
int d[][]= {,,,,,-,,,,-,-,,-,,-,-};
int n,m,a[][],b[][];
pair<int,int>g[N];
int main()
{
cin>>n>>m;
for(int i=; i<=n; i++)
for(int j=; j<=m; j++)
b[i][j]=,cin>>a[i][j],g[a[i][j]]=make_pair(i,j);
for(int i=; i>=; --i)
{
if(g[i].first==)continue;
int x=g[i].first,y=g[i].second,mi=i,sx=,sy=;
for(int j=; j<; j++)
{
int tx=x+d[j][],ty=y+d[j][];
if(tx<||ty<||tx>n||ty>m)continue;
if(a[tx][ty]<mi)
mi=a[tx][ty],sx=tx,sy=ty;
}
if(mi!=i)b[sx][sy]+=b[x][y],b[x][y]=;
}
for(int i=; i<=n; i++)
{
for(int j=; j<=m; j++)
cout<<b[i][j]<<" ";
cout<<"\n";
}
return ;
}

Binary Differences

Time limit: 1000 ms
Memory limit: 256 MB

 

You are given a binary array AA of size NN. We define the cost of a subarray to be the number of 00s minus the number of 11s in the subarray. Find the number of distinct values KK such that there is at least one subarray of cost KK.

Standard input

The first line contains one integer NN.

The second line contains NN integers (00 or 11) representing the elements of AA.

Standard output

Print the answer on the first line.

Constraints and notes

  • 1 \leq N \leq 10^51≤N≤10​5​​
  • The subarray may be empty
Input Output Explanation
3
0 1 0
3

We have 33 different costs:

  • [1, 0][1,0] has cost 00
  • [1][1] has cost -1−1
  • [0, 1, 0][0,1,0] has cost 11
4
1 0 0 1
4
  • [1, 0][1,0] has cost 00
  • [1, 0, 0][1,0,0] has cost 11
  • [0, 0][0,0] has cost 22
  • [1][1] has cost -1−1

这个是模拟

#include<bits/stdc++.h>
using namespace std;
int n,mi,ma,x,s,mis,mas;
int main()
{
cin>>n;
for(int i=; i<=n; ++i)
{
cin>>x;
if(!x)s++;
else s--;
mi=min(mi,s-mas),ma=max(ma,s-mis),mas=max(mas,s),mis=min(mis,s);
}
cout<<ma-mi+;
return ;
}

rsa Round #71 (Div. 2 only)的更多相关文章

  1. BestCoder Round #71 (div.2)

    数学 1001 KK's Steel 类似斐波那契求和 #include <cstdio> #include <cstring> #include <algorithm& ...

  2. BestCoder Round #71 (div.2) (hdu 5621)

    KK's Point Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  3. BestCoder Round #71 (div.2) (hdu 5620 菲波那切数列变形)

    KK's Steel Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  4. [Codeforces Educational Round 71]Div. 2

    总结 手速场...像我这种没手速的就直接炸了... 辣鸡 E 题交互,少打了个 ? 调了半个小时... 到最后没时间 G 题题都没看就结束了...结果早上起来被告知是阿狸的打字机...看了看题一毛一样 ...

  5. Educational Codeforces Round 71 (Rated for Div. 2)-F. Remainder Problem-技巧分块

    Educational Codeforces Round 71 (Rated for Div. 2)-F. Remainder Problem-技巧分块 [Problem Description] ​ ...

  6. Educational Codeforces Round 71 (Rated for Div. 2)-E. XOR Guessing-交互题

    Educational Codeforces Round 71 (Rated for Div. 2)-E. XOR Guessing-交互题 [Problem Description] ​ 总共两次询 ...

  7. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

  8. Codeforces Beta Round #65 (Div. 2)

    Codeforces Beta Round #65 (Div. 2) http://codeforces.com/contest/71 A #include<bits/stdc++.h> ...

  9. (BestCoder Round #64 (div.2))Array

    BestCoder Round #64 (div.2) Array 问题描述 Vicky是个热爱数学的魔法师,拥有复制创造的能力. 一开始他拥有一个数列{1}.每过一天,他将他当天的数列复制一遍,放在 ...

随机推荐

  1. Java多线程常见问题

    1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和 ...

  2. PostgreSQL数据类型

    http://blog.csdn.net/neo_liu0000/article/category/797059 第六章  数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型.用户可以使 ...

  3. CF 55D Beautiful numbers (数位DP)

    题意: 如果一个正整数能被其所有位上的数字整除,则称其为Beautiful number,问区间[L,R]共有多少个Beautiful number?(1<=L<=R<=9*1018 ...

  4. Linux 备份

    备份之前的准备工作 安装常用的软件 常用软件的安装,见我另一篇blog Ubuntu 16.04 安装札记 的第四部分. 清理系统中没用的垃圾 至于垃圾清理,主要清理对象有 sudo rm -r ~/ ...

  5. [神经网络]一步一步使用Mobile-Net完成视觉识别(五)

    1.环境配置 2.数据集获取 3.训练集获取 4.训练 5.调用测试训练结果 6.代码讲解 本文是第五篇,讲解如何调用测试训练结果. 上一篇中我们输出了训练的模型,这一篇中我们通过调用训练好的模型来完 ...

  6. 剑指offer22 栈的压入、弹出序列

    写的一个代码,虽然正确通过了,但我觉得会报vector越界的错误 class Solution { public: bool IsPopOrder(vector<int> pushV,ve ...

  7. OpenCascade:Topo类型转换

    OpenCascade:Topo类型转换 TopoDS_Edge newEdge; if (oldShape.ShapeType()==TopAbs_EDGE) newEdge=TopoDS::Edg ...

  8. linux - centos7 开放防火墙端口的新方式

    CentOS 升级到7之后,发现无法使用iptables控制Linuxs的端口, google之后发现Centos 7使用firewalld代替了原来的iptables. 下面记录如何使用firewa ...

  9. 掉坑日志:Windows Native API与DPI缩放

    高DPI显示器越来越普及,软件自然也要适应这个变化,最近实习的时候也遇到了一个关于DPI缩放的问题.因为内部框架的一个控件有BUG,会导致内容的显示出问题,后来实在没办法改成了用Windows Nat ...

  10. c#自定义类型之间的转换(强制类型转换)

    public class ResultModel { public string PlateNumber { get; set; } public int PlateColor { get; set; ...