一如既往地四题。。。好久没切了 有点犯困了明显脑子感觉不够灵活。

为了熟练度还是用java写的,,,导致观赏性很差。。。我好不容易拉了个队友一起切结果过掉a就tm挂机了!!!

A题竟然卡了,,,用了十分钟,幸好我蓝了,不然这罚时怕不是要gg。

A:

  想了很多乱七八糟的法子,蓦然回首,还是暴力大法好。

  把所有 ai==1 的点的下标全存进去, 然后对 a(n-1) 判断一下是否 为 1 就行,   我不知道怎么打带下标的数组啊啊啊,

  

        int n = nextInt();
int a[] = new int[n];
for(int i=0;i<n;i++){
a[i] = nextInt();
}
int num = 0;
int b[] = new int[n];
for(int i=0;i<n;i++){
if (a[i]==1)
b[num++]=i;
}
out.println(num);
for(int i=0;i<num;i++){
if (b[i]==0){
continue;
}else
out.print(a[b[i]-1]+" ");
}
if (a[n-1]==1)
out.print(1);
else {
out.print(a[n-1]);
}
out.flush();
}

main 方法

B:一眼秒了,java写的话就跟a+b一样简单了。。。

 找两个字符串的最长相同后缀就完了。代码我就懒得放了

C:cnm毒瘤啊啊啊啊卡了好久才找到bug。。。用的map和set,到最后直接输出的set.size(),但是没考虑到去不掉的元素会有相同的。我是傻逼

  数组 c 是自己打的表 从1到2的29次方,,,因为stl里的各种方法可能不太一样,就比较难懂,但大体思路是一样的,话说我这种能在java和c++中间自由转换的能力可真是厉害呢

  看到一个实验室的小伙伴竟然都没交几发试试,详细地说一下, set 存所有的元素,因为无法知道个数, 也用 map 存一遍 (用来 判断 4,4  这种一样的情况),

首先我们发现这样一个事实: 如果一个较大的元素可以留下,那么  大于等于它自身的2的整数次幂 减去 它自己  得到 的数 一定存在set里 。(如果  513  可以留下,那么 511 一定存在)  所以直接走一遍就行。能找到配对的在set中全部 remove 掉,  到最后 遍历一边 set,通过 map 得到 set中 元素的 个数总和。

  

public static void main(String[] args) {
int n = nextInt();
int a[] = new int[n];
Map<Integer,Integer> map = new HashMap<Integer, Integer>();
Set<Integer> set = new HashSet<Integer>();
for(int i=0;i<n;i++){
a[i] = nextInt();
set.add(a[i]);
if (map.containsKey(a[i])){
map.put(a[i],map.get(a[i])+1);
}else {
map.put(a[i],1);
}
}
for(int i=0;i<n;i++) {
int temp = -1;
for (int j = 0; j < c.length; j++) {
if (c[j] >= a[i]) {
temp = c[j] - a[i];
break;
}
}
if (temp==0){
if (map.get(a[i])>1){
set.remove(a[i]);
}
}else {
if (map.containsKey(temp)){
set.remove(a[i]);
set.remove(temp);
}
}
}
int ans = 0;
Iterator<Integer> it = set.iterator();
while (it.hasNext()){
ans+=map.get(it.next());
}
out.print(ans);
out.flush();
}

D:

在点11卡了一会,特别囍的是 点了下记录,当时有5个d题,结果全wa点11。。普通贪心 很好想到,遇到 3的整数倍 或者 0 就拿出来。 另外 能被3 整除的 数 那么它各位数的和一定能被三整除,所以我们可以 用一个 sum来记录

以下错误想法千万不要看:wa了之后 瞎试出来一组样例 110112,,, 按照我错误的贪心 ,  112 这个数 其实是 没答案的,因为 sum 分别等于 1,2,4,发现这个bug之后就很容易修改了,还是 map 存一下就ok

 public static void main(String[] args) {
String s = next();
int n = s.length();
int a[] = new int[n];
for(int i=0;i<n;i++){
a[i] = s.charAt(i)-'0';
}
int ans = 0;
int sum = 0; int y[] = new int[3]; for(int i=0;i<n;i++){
if (a[i]%3==0){
y[1]=0;
y[2]=0;
sum=0;ans++;
}else if (a[i]==0){
y[1]=0;
y[2]=0;
sum=0;ans++;
}else {
sum+=a[i]; y[sum%3]++; if (sum%3==0){
y[1]=0;
y[2]=0;
sum=0;
ans++;
}else {
if (y[sum%3]>1){
y[1]=0;
y[2]=0;
sum=0;
ans++;
}
}
}
}
out.print(ans);
out.flush();
}

main 方法

E题时间太短了没来得及细想,虽然我觉着细想也做不出来 ,学长们因为今天要考试都没打也没有靠谱的代码能看,先这样吧,话说在家里切题可真舒服,,不开空调一点也不热

Codeforces Round #496 (Div. 3)的更多相关文章

  1. Codeforces Round #496 (Div. 3) ABCDE1

    //B. Delete from the Left #include <iostream> #include <cstdio> #include <cstring> ...

  2. CodeForces -Codeforces Round #496 (Div. 3) E2. Median on Segments (General Case Edition)

    参考:http://www.cnblogs.com/widsom/p/9290269.html 传送门:http://codeforces.com/contest/1005/problem/E2 题意 ...

  3. Codeforces Round #496 (Div. 3 ) E1. Median on Segments (Permutations Edition)(中位数计数)

    E1. Median on Segments (Permutations Edition) time limit per test 3 seconds memory limit per test 25 ...

  4. Codeforces Round #496 (Div. 3) F - Berland and the Shortest Paths

    F - Berland and the Shortest Paths 思路:还是很好想的,处理出来最短路径图,然后搜k个就好啦. #include<bits/stdc++.h> #defi ...

  5. Codeforces Round #496 (Div. 3) E2 - Median on Segments (General Case Edition)

    E2 - Median on Segments (General Case Edition) 题目大意:给你一个数组,求以m为中位数的区间个数. 思路:很巧秒的转换,我们把<= m 数记为1, ...

  6. Codeforces Round #496 (Div. 3) E1. Median on Segments (Permutations Edition) (中位数,思维)

    题意:给你一个数组,求有多少子数组的中位数等于\(m\).(若元素个数为偶数,取中间靠左的为中位数). 题解:由中位数的定义我们知道:若数组中\(<m\)的数有\(x\)个,\(>m\)的 ...

  7. Codeforces Round #496 (Div. 3) D. Polycarp and Div 3 (数论)

    题意:给你一个巨长无比的数,你可以将这个数划成任意多个部分,求这些部分中最多有多少个能被\(3\)整除. 题解:首先我们遍历累加每个位置的数字,如果某一位数或者累加和能被\(3\)整除(基础知识,不会 ...

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

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

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

随机推荐

  1. flask之基础知识点

    本篇导航: 路由系统 视图函数 请求与响应 模版语法 session 蓝图(blueprint).闪现 (flash) 扩展 一.路由系统 1.可传入参数: @app.route('/user/< ...

  2. eclipse实现代码块折叠-类似于VS中的#region……#endregion

    背 景 刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第一个闪现出 ...

  3. mssql f_Split

    mssql可以如下CREATE FUNCTION [dbo].[f_Split] ( @val varchar(max),@Splits varchar(100))RETURNS @Table TAB ...

  4. solr集群构建的基本流程介绍

    先从第一台solr服务器说起:1. 它首先启动一个嵌入式的Zookeeper服务器,作为集群状态信息的管理者,2. 将自己这个节点注册到/node_states/目录下3. 同时将自己注册到/live ...

  5. 一句话Javascript实现价格格式化

    //小数点后面如果超过3位则转换错误,如1.1234 正确的是1.1234但却错误的转换成了1.1,234 var test1 = '1234567890.123' var format = test ...

  6. Numba加速Python程序

    众所周知,Python和Java一样是基于虚拟机的语言,并不是像C/C++那样将程序代码编译成机器语言再运行,而是解释一行执行一行,速度比较慢.使用Numba库的JIT技术编译以后,可以明显提高程序的 ...

  7. 单片机 MCU 中 stack 使用的探讨

    stack 的使用,是单片机开发中影响最大,但是最少被讨论的问题.而提及这个问题的地方,都是对这个问题含糊其辞. 今天花了点时间,使用最笨的办法,直接阅读汇编代码,来对这个问题就行探究,这里做一下记录 ...

  8. github和gitlab并存

    原先在自己电脑中配置github的全局变量,只用它来玩github和码云的项目.现在用自己的电脑开发公司项目,公司项目使用的是gitlab,结果拉取代码时还需要手动输入用户名和密码,这还能忍受几次,但 ...

  9. Centos升级mongo客户端

    一.背景 在宿主机centos上启一个Mongo容器,暴露端口21117,并设置用户名,密码(root/mongo) docker run --name mongo1 -p : -d mongo -- ...

  10. 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境

    在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了. 第一步:安装交叉编译工具 a) 安装SDCC sudo apt-get install sdcc b)测试SDC ...