【t066】致命的珠宝
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
门上有着N个宝珠,每个宝珠都有一个数字。Mini询问老者后,得知要想打开这扇门,就得找出两颗珠宝,使这两颗珠宝撞在一起
后产生的能量值最接近123。
两颗珠宝撞在一起以后产生的能量值的计算方法是:将两个珠宝所代表的数字转换为7进制的数后,一一对照这两个七进制数的
每一位,若相同,则结果为0否则为1。
如:两颗珠子所代表的数为18和370,将这两个数转化为7进制后是24和1036,对于高位不足的数,采取高位添‘0’的方法,即两个
数为0024,1036。最后得到的能量值C为1011,再将C当作二进制数转换为十进制数。那么转换后的C就为这两个珠撞在一起以后
所产生的能量值。
【样例说明】
370和78这两颗宝珠所产生的能量值15最接近123
【输入格式】
第一行一个数N,表示宝珠的数量。(2<=N<=900) 第二行N个数,每个数用空格隔开,每个数表示第I个宝珠所代表的数字(0<=每个数<=11111)
【输出格式】
一个数,代表你所找到的最接近123的能量值
Sample Input
5
18 370 45 36 78
Sample Output
15
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t066
【题解】
O(N^2)枚举两个珠宝;
按照所给规则尝试合并它们;
10进制转7进制;
两个7进制根据相同为0,不同为1的规则转成一个2进制;
然后2进制转成10进制;
看看是不是和123的差距更小;更小就更新答案呗.
时间复杂度O(N^2);
(写时间复杂度真的是为了装逼哦[斜眼笑])
【完整代码】
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define pb push_back
const int MAXN = 900+100;
int n,a[MAXN];
int ans = -1,t;
vector <int> two;
vector <int> get7(int x)
{
vector <int> g;
g.clear();
while (x>0)
{
g.pb(x%7);
x/=7;
}
return g;
}
int main()
{
// freopen("F:\\rush.txt","r",stdin);
int now = 1;
while (now<10e8)
{
two.pb(now);
now <<=1;
}
scanf("%d",&n);
for (int i = 1;i <= n;i++)
scanf("%d",&a[i]);
for (int i = 1;i <= n-1;i++)
for (int j = i+1;j <= n;j++)
{
vector<int> x = get7(a[i]),y = get7(a[j]);
int lenx = x.size(),leny = y.size();
int len = max(lenx,leny);
while (int(x.size())<len) x.pb(0);
while (int(y.size())<len) y.pb(0);
reverse(x.begin(),x.end());
reverse(y.begin(),y.end());
vector<int> v;
v.clear();
for (int i = 0;i <= len-1;i++)
if (x[i]==y[i])
v.pb(0);
else
v.pb(1);
reverse(v.begin(),v.end());
int xx = 0;
for (int i = 0;i <= len-1;i++)
xx+=v[i]*two[i];
if (ans==-1)
{
ans = xx;
t = abs(ans-123);
}
else
{
int tt = abs(xx-123);
if (tt<t)
{
ans = xx;
t = tt;
}
}
}
printf("%d\n",ans);
return 0;
}
【t066】致命的珠宝的更多相关文章
- 关于启动 SecureCRT 遇到一个致命的错误且必须关闭
--------------------------SecureCRT---------------------------SecureCRT 遇到一个致命的错误且必须关闭. 一个崩溃转储文件已创建于 ...
- (转)Web开发中最致命的小错误
Web开发中最致命的小错误 现在,有越来越多所谓的“教程”来帮助我们提高网站的易用性.本文收集了一些在 Web 开发中容易出错和被忽略的小问题,并且提供了参考的解决方案,以便于帮助 Web 开发者更好 ...
- 谈谈关于PHP的代码安全相关的一些致命知识
谈谈关于PHP的代码安全相关的一些致命知识 目标 本教程讲解如何防御最常见的安全威胁:SQL 注入.操纵 GET 和 POST 变量.缓冲区溢出攻击.跨站点脚本攻击.浏览器内的数据操纵和远程表单提交. ...
- Android特效专辑(六)——仿QQ聊天撒花特效,无形装逼,最为致命
Android特效专辑(六)--仿QQ聊天撒花特效,无形装逼,最为致命 我的关于特效的专辑已经在CSDN上申请了一个专栏--http://blog.csdn.net/column/details/li ...
- Uber无人驾驶致命车祸翻案:6秒前已侦测到死者
此前有消息称,今年三月 Uber 无人驾驶汽车致命车祸是软件失误导致的.现在,美国运输安全委员会的事故初步调查报告给出了不同的说法. 从图中可见,黄色线以米为单位显示,橙色线显示了地图线路的中心,紫色 ...
- 「雅礼集训 2017 Day5」珠宝
题目描述 Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右 ...
- [LeetCode] Jewels and Stones 珠宝和石头
You're given strings J representing the types of stones that are jewels, and S representing the ston ...
- “SecureCRT遇到一个致命的错误且必须关闭”处理办法
打开SecureCRT时报错:SecureCRT遇到一个致命的错误且发须关闭.一个崩溃转储文件已创建于... 解决办法是,如下在cmd中输入regedit回车打开注册表编缉器 展开HKEY_LOCAL ...
- 【转】Tesla autopilot 引起致命车祸
Tesla autopilot 引起致命车祸 好一段时间没关心 Tesla 了,今天才发现他们的 autopilot 终于引起了致命的车祸.这场 Model S 撞上18轮大卡车的车祸,发生于5月7号 ...
随机推荐
- 用五种不同的布局方式实现“左右300px中间自适应”的效果
float浮动 <section class="layout float"> <style media="screen"> .layou ...
- Android中Scroller类的分析
今天看了一下项目中用到的ViewFlow控件,想弄明白其工作原理.从头开始分析,卡在"滚动"这儿了. 做android也快两年了,连最基本的滚动都不熟悉,真是惭愧...遂网上找资料 ...
- sql —— like
用于在 WHERE 子句中搜索列中的指定模式. 原表: 一.% %表示任何字符出现任意次数. 1.以某个字符串开头的数据 2.包含某个字符串的数据 3.以某个字符串结尾的数据 二._ 只适用于匹配单个 ...
- 获得审批人的id
//sima 传入uid 得到所有上级部门负责人id private function partment($uid,$level='') { //传入部门id 返回本部门所有上级部门负责人的id $d ...
- PHP笔试题(11道题)详解
题目一 <?php echo -10%3; ?> 答案:-1. 考查:优先级. 因为-的优先级比%求余的优先级低, 也就是-(10%3). 2 题目二: print (int)pow(2, ...
- Pytorch - GPU ID 指定 pytorch gpu 指定
PyTorch 关于多 GPUs 时的指定使用特定 GPU. PyTorch 中的 Tensor,Variable 和 nn.Module(如 loss,layer和容器 Sequential) 等可 ...
- TCP/IP 、HTTP和SOCKET
TCP/IP协议概念 TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这 ...
- oracle函数 months_between(d1,d2)
[功能]:返回日期d1到日期d2之间的月数. [参数]:d1,d2 日期型 [返回]:数字 如果d1>d2,则返回正数 如果d1<d2,则返回负数 [示例] select sysdate, ...
- Oracle dbms_random包的用法
1.dbms_random.value方法 dbms_random是一个可以生成随机数值或者字符串的程序包.这个包有initialize().seed().terminate().value().no ...
- hdu 4114 Disney's FastPass(最短路+状态压缩)
Disney's FastPass Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...