zoukankan      html  css  js  c++  java
  • 喵哈哈村的狼人杀大战(2)

    喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!

    星星同学今天她抽到的是狼的身份,按照她的一贯玩法,她喜欢无情的屠杀掉所有的神。

    她现在已经很清楚了场上的预言家,女巫,猎人是谁。但是她唯一不知道的就是白痴这张神牌在谁的身上。于是她诈一诈她的下家——天行廖。

    星星同学的逻辑是这样的:她可以考一道题给天行廖,如果天行廖能够答上来的话,那么天行廖肯定不是白痴,因为白痴是答不上题的。

    这道题是这样的:

    如果一个数只包含4和7的话,那么这个串就是幸运数,比如4777,774就是幸运数,而467就不是幸运数。

    如果一个幸运数中包含的4和7的数量相同的话,那么这个数就是超级幸运数,比如4747就是超级幸运串,447就不是。

    现在给你一个n,你需要找到一个最小的超级幸运数,并且这个超级幸运数大于等于n。

    本题包含若干组测试数据。
    第一行一个整数n。

    满足 1<=n<=10^9

    输出最小的超级幸运数

     
    47
    4500
    47
    4747
    题解

    #include<bits/stdc++.h> using namespace std; long long n; int cnt = 0; long long ten[13]; map<long long,int>H; long long ans = 0; void solve(int a,int b,long long c,int len){ if(H[c])return; if(c>10000000000LL)return; if(a==b&&c>=n)ans=min(ans,c); H[c]=1; solve(a+1,b,c+ten[len]*4,len+1); solve(a,b+1,c+ten[len]*7,len+1); } void solve(){ H.clear(); cnt = 0; ans = 10000000000LL; solve(0,0,0,0); cout<<ans<<endl; } int main(){ ten[0]=1; for(int i=1;i<13;i++) ten[i]=ten[i-1]*10LL; while(cin>>n) solve(); }
  • 相关阅读:
    微分方程、动力系统与混沌导论 第1章 一阶方程[书摘]
    微分方程解耦
    指数输入时微分方程特解的求法
    例说信号与系统
    SVD分解的理解[转载]
    3D数学 ---- 矩阵和线性变换[转载]
    千里积于跬步——流,向量场,和微分方程[转载]
    微分方程——包络和奇解
    微分方程——基本概念和常微分方程的发展史
    sencha touch 入门学习资料大全
  • 原文地址:https://www.cnblogs.com/gfdybz/p/6522540.html
Copyright © 2011-2022 走看看