codeforces 484B - LubaAndTicket - 贪心
2017-08-22 10:54:00
writer:pprp
题意如下:
给你6个数组,你的操作可以是更改某一位的数字成为0-9之间任意一个数,要求前三个数字的和与后三个数字的和相等。
问你最少用几步就可以完成?
分析:这个题太过武断的理解题目了,更改了两次方向才理解正确题目的意思;
一开始理解成只能增加某一位数,
后来比赛以后看了数据,然后理解成能增加或者减少
但是两个理解都不对
应该是每次都可以增加或者减少,大的数组应该减小,小的数组应该增大
贪心的去做
Wa了7次,WA到怀疑人生,最后总算是根据数据漏洞完成写出来AC代码
/*
theme:Luba and The Ticket
writer:pprp
description:审题有问题,可以随意改动一个数,使之变为0-9
自己一开始理解成只能增或者只能减,算法设计失误,重新设计,考虑到小的数组增加和大的数组减小
综合两种情况进行讨论
date:2017/8/22
*/ #include <bits/stdc++.h> using namespace std; int a[], b[]; int main()
{
int ans = ; for(int i = ; i <= ; i++)
scanf("%1d",&a[i]);
for(int i = ; i <= ; i++)
scanf("%1d",&b[i]); int sum1 = , sum2 = ; sort(a+,a+);
sort(b+,b+); for(int i = ; i < ; i++)
{
sum1 += a[i+];
sum2 += b[i+];
} //如果两个数组值恰好相等,直接输出0
if(sum1 == sum2)
{
cout << << endl;
return ;
} ans++; //如果数组a 的和大于数组b的和
if(sum1 > sum2)
{
int i = ;
int j = ;
int cha = abs(sum1 - sum2); //sum的差值如果大于两种情况并且指针j没有越界
while(cha > a[i] && cha > - b[j] && j <= )
{
ans++;
//如果大的数组减小幅度大于小的数组上升幅度,选择大的数组
if(a[i] > - b[j])
{
sum1 -= a[i];
cha = cha - a[i];
i--;
}
else
{
sum2 += - b[j];
cha = cha - + b[j];
j++;
}
}
}
else if(sum1 < sum2)
{
int i = ;
int j = ;
int cha = abs(sum1 - sum2); while(cha > b[i] && cha > - a[j] && j <= )
{
ans++;
if(b[i] > - a[j])
{
sum1 -= b[i];
cha -= b[i];
i--;
}
else
{
sum2 += ( - a[j]);
cha -= ( - a[j]);
j++;
}
}
} cout << ans << endl; return ;
}
codeforces 484B - LubaAndTicket - 贪心的更多相关文章
- Codeforces 484B Maximum Value(高效+二分)
题目链接:Codeforces 484B Maximum Value 题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj 解题思路:类似于素数筛选法的方式,每次枚举aj,然 ...
- CodeForces - 158B.Taxi (贪心)
CodeForces - 158B.Taxi (贪心) 题意分析 首先对1234的个数分别统计,4人组的直接加上即可.然后让1和3成对处理,只有2种情况,第一种是1多,就让剩下的1和2组队处理,另外一 ...
- codeforces 724D(贪心)
题目链接:http://codeforces.com/contest/724/problem/D 题意:给定一个字符串和一个数字m,选取一个一个子序列s,使得对于字符串中任意长度为m的子序列都至少含有 ...
- Codeforces 626G Raffles(贪心+线段树)
G. Raffles time limit per test:5 seconds memory limit per test:256 megabytes input:standard input ou ...
- Cut 'em all! CodeForces - 982C(贪心dfs)
K - Cut 'em all! CodeForces - 982C 给一棵树 求最多能切几条边使剩下的子树都有偶数个节点 如果n是奇数 那么奇数=偶数+奇数 不管怎么切 都会有奇数 直接打印-1 贪 ...
- CodeForces - 940E - Cashback +贪心+DP
传送门:CodeForces - 940E - Cashback 题意:在一个长度为n的数组中,可以分出长度为 k 连续的多个数组b(每个数组 b 的 k 可不相同),然后,可以对每个数组 b 进行删 ...
- Codeforces 515C 题解(贪心+数论)(思维题)
题面 传送门:http://codeforces.com/problemset/problem/515/C Drazil is playing a math game with Varda. Let’ ...
- CodeForces 485C Bits[贪心 二进制]
C. Bits time limit per test1 second memory limit per test256 megabytes inputstandard input outputsta ...
- codeforces 732E(贪心)
题目链接:http://codeforces.com/contest/732/problem/E 题意:有n台计算机,m个插座,每台计算机有一个值a[i],每个插座有一个值b[i],每个插座最多只能对 ...
随机推荐
- Docker与virtualenv
docker环境统一,组件隔离 关于Docker与virtualenv,其本质是一样的,virtualenv虚拟python运行环境,保证系统python环境的整洁,docker也是一样,只是它虚拟的 ...
- 多进程使用matplotlib.pyplot绘heatmap(多线程不可以)
数据格式如下: 8_15/l_eye/2732.png -20.5773 -5.17769 -3.34583 21.5859 9_13_1/l_eye/1211.png -10.1145 34.992 ...
- webpack无法通过 IP 地址访问 localhost 解决方案
解决方案: 在config里面的index.js里面的module.exports下面的dev下面的host:'localhost' 改为 host:'0.0.0.0',就可以访问啦!
- 设计模式C++实现——适配器模式
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/walkerkalr/article/details/29863177 模式定义: 适 ...
- kubernetes清除状态为Evicted的pod
kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod 清除脚本 #!/bin/bash for p ...
- 移植nand驱动补缺:make mrproper与make clean以及make distclean,find/grep. makefile
make mrproper与make clean以及make distclean的区别: linux内核源码根目录下面的makefile中有很清晰的解析: useage: “clean”:Remove ...
- R中seurat等问题学习
1.Seurat 转自:https://cloud.tencent.com/developer/article/1055892 # Initialize the Seurat object with ...
- 搭建 maven 项目 搭建 maven web 项目及遇到 JDK 的问题
临时起意搭建一个 maven web 项目.使用的servlet 3.0 及 1.8 JDK. maven 默认创建了一个JDK 1.5 版本的项目. 注意此处选择一下WAR包.不然在配置中配置的话会 ...
- android上传图片、视频、文件,服务端使用wcf接收
最近一直在搞android上传图片.视频.文件,服务端使用wcf接收,本文对调试中的遇到的问题进行记录. 首先android上传一些小图片是比较容易的一天下来差不多就能调试出来,但是上传一些大的文件时 ...
- iClap助力移动互联网企业高效实现规范化管理
移动互联网的迅速崛起,智能移动客户端深刻而全面地影响着人类生活与工作习惯.而企业办公已从原始的纸张办公,到固定PC办公,跨入到一个应用范围更广.效率更高的移动办公时代.由静生动,让企业办公更加人性化和 ...