首页 > 其他分享 >数位拆分

数位拆分

时间:2023-04-25 16:35:32浏览次数:42  
标签:cnt 进制 int pow num 拆分 ans 数位

https://ac.nowcoder.com/acm/contest/11228/D

  • 观察这四种操作,a = 0,b = 1,b可以乘上x,且a可以加上b
  • 观(1234)x ,x表示为x进制,则(1234)x = 1* pow(x,3) + 2* pow(x,2)+3* pow(x,1)+4 * pow(x,0)
  • 此时已经发现了构造方法,即将n这个十进制的数转换为x进制,再根据上面列的进制拆分来还原操作,最后把a变为x
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int t;
int n,x;
int a,b;
int ans[500];
struct node{
    int aa;
    char bb;
}arr[1000];
int main(){
    cin>>t;
    while(t--){
        cin>>n>>x;
        int num = n;
        int cnt = 0;
        while(num!=0){
           ans[++cnt] = num%x;
           num /= x;
        }
        int ansl = 0;
         for(int i =cnt;i>=1;i--){
             ansl += (ans[i]+1);
        }
        cout<<ansl<<endl;
        for(int i = 1;i<=cnt;i++){
            for(int j = 1;j<=ans[i];j++){
                cout<<1<<" "<<"a"<<endl;
            }
            cout<<2<<" "<<'b'<<endl;
        }
    }
}

标签:cnt,进制,int,pow,num,拆分,ans,数位
From: https://www.cnblogs.com/wujw11world/p/17353024.html

相关文章

  • leetcode343. 整数拆分
    classSolution{public:intf[60];//f[i]记录i能拆出的最大乘积intintegerBreak(intn){for(inti=2;i<=n;i++)for(intj=1;j<i;j++)//枚举最后一个拆出的数字,这里不能只循环到i/2f[i]=max(f[i],max(j*f[i-j],j*(i-j)));......
  • 直播app开发搭建,EditText保留小数位数的问题
    直播app开发搭建,EditText保留小数位数的问题 packagecom.shentaiwang.jsz.savepatient.util;importandroid.text.Editable;importandroid.text.TextWatcher;importandroid.widget.EditText;/***Createdbyjszon2017/7/22.*保留小数位数*/publicclassRetainDecimal{......
  • C#开发的免费PDF转换、压缩、拆分、合并助手
    《骑士科技星火计划》现推出首款产品—《工程人PDF助手》,为工程人打造属于自己的PDF功能助手,具有PDF转换、压缩、拆分及合并等功能。《工程人PDF助手》为《骑士科技星火计划》首款产品,安装步骤简单,操作便捷,供各位工程人免费使用! 获取方式欢迎关注公众号《工程人的编程课堂》,后......
  • 【ACM算法竞赛日常训练】DAY16【奇♂妙拆分】【区区区间间间】【小AA的数列】数学 |
    DAY16共3题:奇♂妙拆分(简单数学)区区区间间间(单调栈)小AA的数列(位运算dp)......
  • 响应拆分漏洞
    1、介绍典型的响应拆分漏洞,是指攻击者可以控制参数,使得受害者用户的浏览器接收到的响应头部字段的名称或值被拆分成多个字段。一般,在网络传输中,http的头部字段以\r\n结尾。但是如果响应字段中,包含攻击者控制的参数,本身存在\r\n,那么传输给用户客户端后,会被解析出下一个响应字段。......
  • 代码随想录 day 46 139.单词拆分
    给定一个非空字符串s和一个包含非空单词的列表wordDict,判定 s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:......
  • 【打怪升级】【微服务】聊聊微服务拆分设计
    并不是所有的场景都适合微服务,我理解技术开发者都有一颗追求新技术的心,但是更重要的是业务场景及团队。关于微服务微服务架构,说白了就是一种上层体系的演变。从最早的单体架构,到前后分离,SOA,甚至微服务架构,其实它们都在做一件事,并且都朝着一个方向去发展:那就是分而治之......
  • 米哈游4-15 笔试第三题 数位dp
    一、题意:找到第k(k上限1e12)大的,不包括4并且能被7整除的数。题解:二分+数位dp。#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;typedeflonglongLL;constintMAXN=100;LLdp[MAXN][7],digit[MAXN];LLdfs(intpos,intmod,bool......
  • 数位DP
    数位DP数位是指把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是0~9,其他进制可类比十进制。数位DP:用来解决一类特定问题,这种问题比较好辨认,一般具有这几个特征:要求统计满足一定条件的数的数量(即,最终目的为计数);......
  • 调整数组顺序使奇数位于偶数前面
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例:输入:nums= [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确的答案之一。提示:0<=nums.length<=500000<=nums[i]<=10000int*exchange(int*nums,......