这题昨天晚上花了我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 --耻辱的一题的更多相关文章

  1. Codeforces#441 Div.2 四小题

    Codeforces#441 Div.2 四小题 链接 A. Trip For Meal 小熊维尼喜欢吃蜂蜜.他每天要在朋友家享用N次蜂蜜 , 朋友A到B家的距离是 a ,A到C家的距离是b ,B到C ...

  2. You Are Given a Decimal String... CodeForces - 1202B [简单dp][补题]

    补一下codeforces前天教育场的题.当时只A了一道题. 大致题意: 定义一个x - y - counter :是一个加法计数器.初始值为0,之后可以任意选择+x或者+y而我们由每次累加结果的最后 ...

  3. codeforces 1165F1/F2 二分好题

    Codeforces 1165F1/F2 二分好题 传送门:https://codeforces.com/contest/1165/problem/F2 题意: 有n种物品,你对于第i个物品,你需要买 ...

  4. Codeforces 675C Money Transfers 思维题

    原题:http://codeforces.com/contest/675/problem/C 让我们用数组a保存每个银行的余额,因为所有余额的和加起来一定为0,所以我们能把整个数组a划分为几个区间,每 ...

  5. Topcoder SRM 619 DIv2 500 --又是耻辱的一题

    这题明明是一个简单的类似约瑟夫环的问题,但是由于细节问题迟迟不能得到正确结果,结果比赛完几分钟才改对..耻辱. 代码: #include <iostream> #include <c ...

  6. Codeforces Gym 100531G Grave 水题

    Problem G. Grave 题目连接: http://codeforces.com/gym/100531/attachments Description Gerard develops a Ha ...

  7. Codeforces 1137D - Cooperative Game - [交互题+思维题]

    题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...

  8. Codeforces 767B. The Queue 模拟题

    B. The Queue time limit per test:1 second memory limit per test:256 megabytes input:standard input o ...

  9. 多种方法过Codeforces Round #270的A题(奇偶法、打表法和Miller_Rabin(这个方法才是重点))

    题目链接:http://codeforces.com/contest/472/problem/A 题目: 题意:哥德巴赫猜想是:一个大于2的素数一定可以表示为两个素数的和.此题则是将其修改为:一个大于 ...

随机推荐

  1. 盒模型结构——3D盒模型

  2. Win7 64位下sql server链接oracle的方法

    继上一次mysql同步sql server后,这一次需要将Oracle同步到sql server上来,方案相似,只是在sql server链接oracle的时候费了很多时间. 一.测试环境 本方案实现 ...

  3. andriod 获得drawable下所有图片

    package com.example.yanlei.my1; import android.app.AlertDialog; import android.content.Context; impo ...

  4. SharePoint 2013 隐藏部分Ribbon菜单

    SharePoint的使用中,因为用户经常不愿意看到那些不经常使用的操作,我们经常需要定制Ribbon菜单, 更多时候不是隐藏所有,而是隐藏掉我们不需要的那些:下面,我们一列表为例,简单介绍下如何部分 ...

  5. Winform使用外部浏览器解决webbrowser问题

    对于还是一个菜鸟的我,在最近自己接手了个项目,搞的自己也是醉了,身边也有没大神的现场指导,只能靠度娘和谷歌的大力帮助,要不然这么个小项目可定现在还交不了,不过在这过程种也确确实实学到了不少东西,我先说 ...

  6. Creating External Lists From Code

    You can create an external list based on an entity (external content type) defined in SharePoint Bus ...

  7. 打造高仿QQ的友盟反馈界面(MVP模式)

    什么是MVP呢,简单来说就是将view层和逻辑完全独立出来,让逻辑和显示完全独立.本例中就是采用了这种模式,让activity作为view层,activity中涉及了适配器,所以这里尝试让适配器作为P ...

  8. iOS之UI--微博个人详情页

    前言:微博个人详情页,和我常用的的QQ空间的详情页是同样的.要求能够融会贯通,做这一类的界面能够快速上手实现. 动态图效果展示: 直接使用UINavigationBar->UITableView ...

  9. Cocos2d入门--2--三角函数的应用

    其实,三角函数的知识点是初中的数学基础.但是在编程里合理的利用的话,也会很好玩的,可以制作出很多有趣的动画特效. 首先要注意的是 角度 和 弧度 的转换. 360度 = 2×PI弧度 180度 =   ...

  10. IOS开发之SVN的使用

    关于SVN的一个使用细节