BJTUOJ 1653 Wizard of Odds 思维, 码力

  题目链接: http://citel.bjtu.edu.cn/boj/problem.php?id=1653

  题目描述: 自己看吧, 懒得写了

  解题思路: 就是问一个10进制的数, 和一个2^k进制的数字谁大, 因为我觉得最快就是log2(n)了, 但是这个10进制的数是一个大数, 所以只能用字符串处理, 所以说这道题的关键就是用字符串模拟出十进制转二进制

  代码: 这个代码没有AC

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAXN = 105;
char s1[MAXN];
char s2[MAXN];
int s3[MAXN];
int ans[MAXN];
int done;
int cnt;
int len1;

int ok( int * temp ) {
    for( int i = 0; i < len1; i++ ) {
        if( temp[i] != 0 ) return 0;
    }
    return 1;
}

void div2( int * temp, int & mod ) {
    int flag = 0;
    for( int i = 0; i < len1; i++ ) {
        if( flag ) temp[i] += 10;
        if( temp[i] % 2 ) flag = 1;
        else flag = 0;
        temp[i] = temp[i] / 2;
    }
    mod = flag;
}

void solve( int * temp ) {

    if( done ) return;
    if( ok(temp) ) {
        done = 1;
        return;
    }
    int mod = 0;
    div2(temp, mod);
    ans[cnt++] = mod;
    solve(temp);
}
int main() {
    while( scanf( "%s%s", s1, s2 ) != EOF ) {
        memset(s3, 0, sizeof(s3));
        memset(ans, 0, sizeof(ans));
        done = 0;
        cnt = 0;
        len1 = (int)strlen(s1);
        int len2 = (int)strlen(s2);
        if( len2 >= 4 ) {
            cout << "Your wish is granted!" << endl;
            continue;
        }
        int num2 = atoi(s2);
        for( int i = 0; i < len1; i++ ) {
            s3[i] = (int)s1[i]-48;
        }
        solve(s3);
//        for( int i = cnt-1; i >= 0; i-- ) {
//            cout << ans[i] << " ";
//        }
//        cout << endl;
//        cout << cnt-1 << " " << num2 << endl;
        if( cnt > num2+1 ) {
            cout << "You will become a flying monkey!" << endl;
        }
        else if( cnt < num2+1 ) {
            cout << "Your wish is granted!" << endl;
        }
        else {
            int flag = 1;
            for( int i = 1; i < cnt-1; i++ ) {
                if( ans[i] != 0 ) {
                    flag = 0;
                    break;
                }
            }

            if( !flag ) {
                cout << "You will become a flying monkey!" << endl;
            }
            else {
                cout << "Your wish is granted!" << endl;
            }
        }
    }
}

  思考: 我好像像个傻逼一样了......这题应该这么做?

时间: 2024-10-14 09:07:03

BJTUOJ 1653 Wizard of Odds 思维, 码力的相关文章

“协力抗疫,码力全开”线上黑客马拉松规则说明

Hi 所有的黑马参与者: 首先请接受我们 (腾讯云云开发 .云加社区.SegmentFault思否 .码云Gitee)的诚挚感谢!感谢大家的参与,致敬大家乐于奉献的精神! 以下是本次活动的详细规则说明: 1. 活动关键时间节点 重要时间点 事项 2月2-4日24点 报名.组队与选题 1.请确保你已经在报名表上提交报名信息:https://wj.qq.com/s2/5318106/1c8b 2.完成报名后,你可以在活动咨询群/朋友群/同时群里,发起组队 3.组队完成后,请在2月4日晚上24点前,提

当一个菜鸡想提高码力

碎碎念 变量重名了吗 该用long long 的用了吗 特殊情况考虑了吗 全局变量变了吗,用全局变量要注意 二分 注意二分的东西是离散的还是连续的 注意结果是取最左的还是最右的 可持久化 修改记录的时候一定要新建记录,不能在原纪录上修改,会影响到其他历史记录的... 原文地址:https://www.cnblogs.com/jiecaoer/p/11984789.html

【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍. 优秀的码农会告诉你学啥底层.啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊? +++基础的分割线+++ 列举几个我认为比较重

最近建了一个.net源码共享群,群共享有大量网友分享的.net(C#)商业源码

.net源码共享群 324087998. 本群创建于2013/6/21: 群里都是.net(C#)程序开发人员,群共享有大量网友分享的.net(C#)商业源码.比如:DTCMS旗舰版,hishop微分销,shopnum微分销,多用户微信公众平台开发,力软信息化快速开发框架.源码研究,源码共享,.net反编译破解,.net破解反编译,技术研究交流! 之前在CSDN上发了一下,现在群里有六七百人了.马上就满员了,第二个群又要开始了.群友都是很活跃的,现在群等级满级了. 这是之前文章内容: 由于工作需

开笔(一直以来,我总是想得太多,做得太少)

曾经无数次构想自己的路,但是走到今天,却突然发现,自己选择的路太规矩.(太久没写东西,逻辑已经混乱了) 从大一入学到现在,已经过去了一年半,这一年半,我学到了什么?我长进了什么?我在脑海里狂搜一遍,发现什么都没学到.如今的我跟刚入学的我相比没有本质的变化.我觉得这些都要归咎于我没有一个规划,或者说没有一个有效的规划. 既然要谈,就放开来谈吧.先从规划讲起.我的专业的计算机科学与技术,在入学之前我有引路人,他告诉我这个专业的方向,也就是从那时候起,我知道了ACM(国际大学生程序设计竞赛).然后当时

NOIP 2017 day 1 游记

心情非常复杂.大概就是我问到的所有人都A掉了T1那样. 的确没有按套路出牌,今年T1不是大模拟,反倒是T2. ……已经不想再提到今天的T1了.如果真的要我说,我只能说 我再次学了一整年的OI,结果栽到了一道小学奥数题上. 结论题,如果你能猜到结论,那么就可以秒掉.猜不到就会GG. 两年OI一场空,小学奥数见祖宗. T2思维难度几乎为0,但是代码复杂度上天. 从洛谷的民间数据评测记录看有大量的人A掉了此题. 果然码力强就是好啊. 我20min匆匆写完T3暴力就滚去继续写T2,当时是照着满分的做法写

knn_in_python

前言 ? 经过多日有关深度学习的学习,已经对python和有关理论知识有着初步的掌握,但是在编写程序的时候还是存在着思路不清晰,码力不足的情况.根据我浅薄的学习经验,想要在最短的时间内扭转这种情况必须狠狠地吃透几个项目.对于一些程序需要一行代码一行代码地分析,反复看.这种方法虽然笨拙但是速度最快,效果最好,能够以惊人的速度吸收代码大神的编程营养.不仅要吃透,还要输出,所以我想开一个分类专门记录一个小白视角分析大神项目代码的板块,不仅输出了所学,掌握更牢固,而且以后还可以回溯.我把这个分类的名字叫

SPOJ GSS6 Can you answer these queries VI ——Splay

[题目分析] 增加了插入和删除. 直接用Splay维护就好辣! 写了一个晚上,(码力不精),最后发现更新写挂了 [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set> #include <queue> #include <string> #include

推进&quot;五通一平&quot;:手淘技术&quot;三大容器 五大方案&quot;首次整体亮相 百川开放升级

在云栖大会上,马云提出五个"新",新零售.新制造.新金融.新技术和新能源,称将对各行各业造成巨大的影响,成为决定未来成败的关键.而五个新的实现,也必须是各行各业共同推进,整个生态共同受益的结果.继10月14号阿里巴巴资深总监庄卓然宣布手淘技术核心之一的Atlas即将开源之后,淘宝移动平台基础平台部负责人吴志华向业界公布了手淘技术核心"三大容器五大方案",后续阿里百川将会承接手淘核心技术,产品化的向业界开放.在10月15日的"淘宝移动技术实践&开放&