ACM-ICPC 2014北京邀请赛 H Happy Reverse [模拟]

2024-06-17 03:32

本文主要是介绍ACM-ICPC 2014北京邀请赛 H Happy Reverse [模拟],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给出n个二进制串,可以把其中的一些0和1反转(即0变1,1变0),找出转化后n个串中的最大值和最小值的差值。


分析:思路就是把所有的串和反转的存在一个数组中,然后排序,找最大值和最小值的差,(如果是同一个串反转的就找第二大的和最小的或第二小和最大的中的最大值)。注意假如只有一个串的话结果为0


DEBUG:

这题写了好久

1.第一次用vim,很爽,但是还没熟练

2.忽视了这题的范围,显然要用longlong

3.用了longlong后还WA,用脚本跑出来数据发现在longlong下,min的值要变成(1<<63)-1但是不能这么写,应该写个longlong 是1<<30,然后在这个longlong基础上再移位


最后不得不说句 BNUOJ真的比POJ好看很多哈

    #include <iostream>#include <cmath>#include <cstring>#include <cstdio>using namespace std;char str[111111][222];long long tmp=1<<30;const long long MAX_LONG=(tmp<<33)-1;long long num[111111];long long m,n;void getRev(char* to,char* source,long long len){for(long long i=0;i<len;i++)to[i]=source[i]=='0'?'1':'0';to[len]='\0';}long long getNum(char* s,long long len){long long sum=0;for(long long i=0;i<len;i++){sum*=2;sum+=s[i]-'0';}return sum;}int main(){long long test;cin>>test;for(long long time=1;time<=test;time++){cin>>m>>n;for(long long i=1;i<=m;i++)cin>>str[i];/*if(m==1){printf("Case #%d: 0\n",time);continue;}*/for(long long i=m+1;i<=2*m;i++)getRev(str[i],str[i-m],n);long long minn=MAX_LONG;long long maxn=0;for(long long i=1;i<=2*m;i++)num[i]=getNum(str[i],n);long long max1=0,max1index,min1=MAX_LONG,min1index;long long max2=0,max2index,min2=MAX_LONG,min2index;for(long long i=1;i<=2*m;i++){    if(num[i]>max1){max1=num[i];max1index=i;}if(num[i]<min1){min1=num[i];min1index=i;}}for(long long i=1;i<=2*m;i++){    if(i!=max1index&&num[i]>max2){max2=num[i];max2index=i;}if(i!=min1index&&num[i]<min2){min2=num[i];min2index=i;}}if(abs(min1index-max1index)!=m){maxn=max1;minn=min1;}else{if(max1-min2>max2-min1){//cout<<"1"<<endl;maxn=max1;minn=min2;}else{//cout<<"2"<<endl;maxn=max2;minn=min1;}}//cout<<maxn<<' '<<minn<<endl;printf("Case #%lld: %lld\n",time,maxn-minn);}return 0;}


这篇关于ACM-ICPC 2014北京邀请赛 H Happy Reverse [模拟]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068372

相关文章

基于 Java 实现的智能客服聊天工具模拟场景

服务端代码 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Serv

上海邀请赛 A题目 HDU 5236(dp)

先求出没有ctrl+s的时候构造长度为i的期望f[i] 。然后枚举保存的次数,求出最小即可。 #include<cstdio>#include<cstdio>#include<cmath>#include<queue>#include<stack>#include<string>#include<cstring>#include<iostream>#include<map>

价格减免(Lc2288)——模拟

句子 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 '$' 。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 价格 。 例如 "$100"、"$23" 和 "$6" 表示价格,而 "100"、"$" 和 "$1e5 不是。 给你一个字符串 sentence 表示一个句子和一个整数 discount 。对于每个表示价格的单

Google Code Jam 2014(附官方题解)

2014年Google编程挑战赛 Problem A. Magic Trick Confused? Read the quick-start guide. Small input 6 points You have solved this input set. Note: To advance to the next rounds, you will need to s

Codeforces April Fools Day Contest 2014(附官方题解)

Codeforces2014年愚人节的坑题。。。但还是感觉挺好玩的。。。 A. The Great Game time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Two teams mee

模拟木马程序自动运行:Linux下的隐蔽攻击技术

模拟木马程序自动运行:Linux下的隐蔽攻击技术 在网络安全领域,木马程序是一种常见的恶意软件,它能够悄无声息地在受害者的系统中建立后门,为攻击者提供远程访问权限。本文将探讨攻击者如何在Linux系统中模拟木马程序的自动运行,以及他们可能使用的技术手段。 木马自动运行的常见方法 攻击者通常会使用以下几种方法来确保木马在Linux系统中自动运行: 计划任务(Crontab): 攻击者可以通

2023-2024 学年第二学期小学数学六年级期末质量检测模拟(制作:王胤皓)(90分钟)

word效果预览: 一、我会填 1. 1.\hspace{0.5em} 1. 一个多位数,亿位上是次小的素数,千位上是最小的质数的立方,十万位是 10 10 10 和 15 15 15 的最大公约数,万位是最小的合数,十位上的数既不是质数也不是合数,这个数是 ( \hspace{4em} ),约等于 ( \hspace{1em} ) 万 2. 2.\hspace{0.5em} 2.

论坛开发者总结:再见2013,你好2014!

转自:http://www.cocoachina.com/gamedev/misc/2014/0102/7644.html 在跨年的时候,我和你一样听着电视里的各种欢呼声,看着时针分针不慌不忙地走向0点,有点兴奋有点怅然有点对过往的追忆也有对未来的期许,但在0点钟声敲响的时候,不管过往如何,都信心满满地对自己说了声--你好2014! 对于开发者来说,2013年移动游

java实训 | 低配版模拟火车订票系统

代码:  import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.util.ArrayList;import java.util.List;public class TrainBookingSystem {private JFrame frame;private JPanel

phpmailer 邮件模拟注册验正

下载phpmailer类 我本次的实验用的是版本 5.2.9 下载后解压提取文件class.smtp.php class.phpmailer.php PHPMailerAutoload.php 放在phpmailer目录里 1.链接数据库 conn.php   $conn=mysql_connect("localhost","root","");    if(!$conn){