Codeforces 402B --耻辱的一题
这题昨天晚上花了我1个小时50多分钟来搞,都没有搞定。。后来看别人代码,直接暴力枚举第一个数的值来做。。最多1000*1000的复杂度。当时怎么就没想到呢?还有为啥我的方法不对呢。。
暴力方法代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Mod 1000000007
using namespace std;
#define N 1007 int a[N]; int main()
{
int n,k,i,j,tmp,maxi,cnt,now,mini;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(i=;i<=n;i++)
scanf("%d",&a[i]);
mini = Mod;
for(i=;i<=;i++)
{
cnt = ;
tmp = i;
for(j=;j<=n;j++)
{
if(a[j] != tmp)
cnt++;
tmp += k;
}
if(cnt < mini)
{
mini = cnt;
now = i;
}
}
printf("%d\n",mini);
tmp = now;
for(i=;i<=n;i++)
{
if(a[i] > tmp)
printf("- %d %d\n",i,a[i]-tmp);
else if(a[i] < tmp)
printf("+ %d %d\n",i,tmp-a[i]);
tmp += k;
}
}
return ;
}
自己的做法:
做一个参考数组b[],存放1,1+k,1+2k....1+(n-1)k,然后a,b两数组(a为原数组)个元素相减,得出差值数组cha,且将cha复制一份给cha2,将cha2从大到小排序,得出差值大于0的最大连续相同的差值(差值小于0肯定不行,因为从1开始的b数组是底线,比b还小说明会小于0,与题意不符),以最大连续差值的这些数为基准,这些数不变,将其他数变为使整个数组满足Ai+1-Ai = k,此时形成标准数组biao[],然后比较a[]和biao[],得出操作数和操作序列。但是就是不对,,不知道为啥,那位好心人如果发现这样那里不对欢迎向我指出,谢谢。
自己代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Mod 1000000007
using namespace std;
#define N 1007 int a[N],biao[N],cha[N],b[N],cha2[N]; int cmp(int ka,int kb)
{
return ka>kb;
} int main()
{
int n,k,i,j,flag;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(i=;i<=n;i++)
scanf("%d",&a[i]);
for(i=;i<=n;i++)
b[i] = +(i-)*k;
for(i=;i<=n;i++)
{
cha[i] = a[i]-b[i];
cha2[i] = cha[i];
}
sort(cha2+,cha2+n+,cmp);
int cnt = ;
int maxi = ;
for(i=;i<=n;i++)
{
if(cha2[i] < )
break;
if(cha2[i] == cha2[i-])
cnt++;
else
{
if(cnt > maxi)
{
maxi = cnt;
flag = cha2[i-];
cnt = ;
}
}
}
if(cnt > maxi)
{
maxi = cnt;
flag = cha2[i-];
}
for(i=;i<=n;i++)
{
if(cha[i] == flag)
{
break;
}
}
for(j=i;j>=;j--)
biao[j] = a[i]-k*(i-j);
for(j=i+;j<=n;j++)
biao[j] = a[i]+k*(j-i);
cnt = ;
for(i=;i<=n;i++)
{
if(a[i]!=biao[i])
cnt++;
}
printf("%d\n",cnt);
for(i=;i<=n;i++)
{
if(a[i] != biao[i])
{
if(a[i] > biao[i])
{
printf("- %d %d\n",i,a[i]-biao[i]);
}
else
printf("+ %d %d\n",i,biao[i]-a[i]);
}
}
}
return ;
}
Codeforces 402B --耻辱的一题的更多相关文章
- Codeforces#441 Div.2 四小题
Codeforces#441 Div.2 四小题 链接 A. Trip For Meal 小熊维尼喜欢吃蜂蜜.他每天要在朋友家享用N次蜂蜜 , 朋友A到B家的距离是 a ,A到C家的距离是b ,B到C ...
- You Are Given a Decimal String... CodeForces - 1202B [简单dp][补题]
补一下codeforces前天教育场的题.当时只A了一道题. 大致题意: 定义一个x - y - counter :是一个加法计数器.初始值为0,之后可以任意选择+x或者+y而我们由每次累加结果的最后 ...
- codeforces 1165F1/F2 二分好题
Codeforces 1165F1/F2 二分好题 传送门:https://codeforces.com/contest/1165/problem/F2 题意: 有n种物品,你对于第i个物品,你需要买 ...
- Codeforces 675C Money Transfers 思维题
原题:http://codeforces.com/contest/675/problem/C 让我们用数组a保存每个银行的余额,因为所有余额的和加起来一定为0,所以我们能把整个数组a划分为几个区间,每 ...
- Topcoder SRM 619 DIv2 500 --又是耻辱的一题
这题明明是一个简单的类似约瑟夫环的问题,但是由于细节问题迟迟不能得到正确结果,结果比赛完几分钟才改对..耻辱. 代码: #include <iostream> #include <c ...
- Codeforces Gym 100531G Grave 水题
Problem G. Grave 题目连接: http://codeforces.com/gym/100531/attachments Description Gerard develops a Ha ...
- Codeforces 1137D - Cooperative Game - [交互题+思维题]
题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...
- Codeforces 767B. The Queue 模拟题
B. The Queue time limit per test:1 second memory limit per test:256 megabytes input:standard input o ...
- 多种方法过Codeforces Round #270的A题(奇偶法、打表法和Miller_Rabin(这个方法才是重点))
题目链接:http://codeforces.com/contest/472/problem/A 题目: 题意:哥德巴赫猜想是:一个大于2的素数一定可以表示为两个素数的和.此题则是将其修改为:一个大于 ...
随机推荐
- LGLProgressHUD
不想用第三方的指示器,感觉有点大,自己写了一个简单的活动指示器,目前只有两种效果.效果如图 第一种: 第二种 第二种可以随着提示文字的增多而变长 LGLProgressHUD.h // // LGLP ...
- Mysql优化经验
一.索引优化 范围匹配使用B-tree索引 等值匹配使用 HASH索引,hash所有唯一Memory引擎 2.索引三星系统, 1.相关记录放到一起 2.索引中的数据和查找中的排序顺序一直 3.索引的 ...
- 一个Chrome拓展——HttpPost
周末花了点时间做了一个chrome拓展,叫HttpPost,顾名思义是用来测试http的post请求. 先直接看效果 插件与拓展 在说这个做的过程前,先说明什么是Chrome插件.Chrome拓展 1 ...
- Javascript的一种代码结构方式——插件式
上几周一直在做公司的webos的前端代码的重构,之中对javascript的代码进行了重构(之前的代码耦合严重.拓展.修改起来比较困难),这里总结一下当中使用的一种代码结构——插件式(听起来怎么像独孤 ...
- 【使用 DOM】使用 DOM 元素
1. 使用元素对象 HTMLElement对象提供了一组属性,可以用它们来读取和修改被代表的数据.下表介绍了这些属性. 下面代码展示了如何使用表中所列的一些基本属性. <!DOCTYPE htm ...
- vsphere vcenter server下安装ubuntu的vmwaretools
0.参考文献 百度经验:这里面是以redhat桌面版为实例进行介绍的,我的环境是ubuntu-server,虽然不一样,也可以参考 http://jingyan.baidu.com/article/2 ...
- Android 购物车功能的实现
首先,众所周知,ListView是Android最常用的控件,可以说是最简单的控件,也可以说是最复杂的控件. 作为一个Android初级开发者,可能会简单的ListView展示图文信息. 作为一个有一 ...
- Mac下Apache Tomcat安装配置
Java Web如果稍微知道一点,一般对Tomcat都不会陌生,Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomca ...
- VIP - virtual IP address
virtual IP address (虚拟 IP 地址)1.是集群的ip地址,一个vip对应多个机器2.与群集关联的唯一 IP 地址 see wiki: A virtual IP address ( ...
- Java 读取指定目录下的文件名和目录名
需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...