题目描述

tokitsukaze又在玩3ds上的小游戏了,现在她遇到了难关。
tokitsukaze得到了一个整数x,并被要求使用x的每一位上的数字重新排列,组成一个能被8整除的数,并且这个数尽可能大。
聪明的你们请帮帮可爱的tokitsukaze,如果无法组成被8整除的数,请输出-1。
保证输入不含前导0,输出也不能含前导0。

输入描述:

第一行包括一个正整数T(T<=1000),表示T组数据。
接下来T行,每一行包括一个整数x,(0≤x≤10^100)。

输出描述:

请输出用这些数字组成出能被8整除的最大的数,如果无法组成出能被8整除的数,请输出-1。

示例1

输入

2
666
1256

输出

-1
6512

一个数能否被8整除,若大于999,呢么后三位能整除8,呢么这个数字就能整除8

快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结:

https://blog.csdn.net/weixin_41183791/article/details/84887846

ac:

#include<bits/stdc++.h>
using namespace std;
int c[10]={0};
char str[1010]={0};struct node
{int num;int max2;int xc[10]={0};friend bool operator <(node a,node b){if(a.max2==b.max2)return a.num>b.num;else return a.max2<b.max2;}
}a[1000];int b[3]={0};int init()
{int n,m,x,j=1;a[0].num=0;   //别忘了000哦a[0].xc[0]=3;a[0].max2=0;for(int i=100;i<1000;i++){if(i%8==0){a[j].num=i;b[0]=i%10;b[1]=(i%100)/10;b[2]=i/100;a[j].xc[b[0]]++;a[j].xc[b[1]]++;a[j].xc[b[2]]++;sort(b,b+3,greater<int>());a[j].max2=b[0]*100+b[1]*10+b[2];j++;}}sort(a,a+j);return j;
}int gg[]={8,16,24,32,40,48,56,64,72,80,88,96};int main()
{int t;int j=init();scanf("%d",&t);while(t--){memset(str,0,sizeof(str));memset(c,0,sizeof(c));scanf("%s",&str);int len=strlen(str);if(len==1){if(str[0]-'0'==8)printf("8\n");else if(str[0]-'0'==0)printf("0\n");else printf("-1\n");}else if(len==2){int flag=0;int xx=(str[0]-'0')*10+str[1]-'0';int yy=str[0]-'0'+(str[1]-'0')*10;for(int i=11;i>=0;i--){if(xx==gg[i]||yy==gg[i]){flag=1;printf("%d\n",gg[i]);break;}}if(flag==0)printf("-1\n");}else{for(int i=0;i<len;i++)c[str[i]-'0']++;int sign=0;for(int i=0;i<j;i++){int flag=0;for(int k=0;k<10;k++){if(c[k]<a[i].xc[k]){flag=1;break;}}if(flag==0){for(int k=0;k<10;k++)c[k]-=a[i].xc[k];for(int k=10;k>=0;){if(c[k]>0){printf("%d",k);c[k]--;}else k--;}if(i==0)printf("000\n");else printf("%d\n",a[i].num);sign=1;break;}}if(sign==0)printf("-1\n");}}return 0;
}

转载于:https://www.cnblogs.com/wangtao971115/p/10358242.html

牛客33-tokitsukaze and Number Game(数论)相关推荐

  1. 【牛客 - 185D】星光晚餐(数论,结论,思维,模型)

    题干: Johnson和Nancy要在星光下吃晚餐.这是一件很浪漫的事情. 为了增加星光晚餐那浪漫的氛围,他拿出了一个神奇的魔法棒,并且可以按照一定的规则,改变天上星星的亮暗. Johnson想考考N ...

  2. Hash Function 2021牛客暑期多校训练营1 数论 + NTT

    Hash Function solution 任意选择该集合中的两个数,a,b,由于a%mod<>b%mod任意选择该集合中的两个数,a,b,由于a\%mod<>b\%mod任 ...

  3. 牛客练习赛33 D tokitsukaze and Inverse Number (树状数组求逆序对,结论)

    链接:https://ac.nowcoder.com/acm/contest/308/D 来源:牛客网 tokitsukaze and Inverse Number 时间限制:C/C++ 1秒,其他语 ...

  4. 【牛客 - 1080E】tokitsukaze and Segmentation(dp,递推,思维)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1080/E 来源:牛客网 tokitsukaze有一个长度为n的字符串,字符串仅包含'0'-'9'. tokit ...

  5. 【牛客 - 1080B】tokitsukaze and Hash Table(STLset,并查集,Hash)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1080/B 来源:牛客网 tokitsukaze有n个数,需要按顺序把他们插入哈希表中,哈希表的位置为0到n-1 ...

  6. 2021牛客暑期多校训练营

    2021牛客暑期多校训练营1 A- Alice and Bob /* 博弈问题 两堆石头,每人每次从其中一堆拿k(k>0)个, 同时从另一堆拿s*k个(s>=0),不能进行操作的即失败 * ...

  7. 【牛客 - 1080D】tokitsukaze and Event(最短路,思维)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1080/D 来源:牛客网 这天,tokitsukaze带着她的舰队去才归一儿海探索.这个海域有n个站点,深海舰队 ...

  8. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 2019牛客网暑假多校训练第四场 K —number

    链接:https://ac.nowcoder.com/acm/contest/884/K 来源:牛客网 题目描述 300iq loves numbers who are multiple of 300 ...

  10. 2019牛客暑期多校训练营(第七场)D Number(思维)

    链接:https://ac.nowcoder.com/acm/contest/887/D 来源:牛客网 题目描述 I have a very simple problem for you. Given ...

最新文章

  1. android学习之旅_01
  2. 华为设备不会配置静态路由怎么办?
  3. [原] 淘宝SKU组合查询算法实现
  4. onenote快捷键_onenote链接系列:4种链接笔记的地址
  5. GPU Gems1 - 24 高质量的过滤
  6. python拦截修改数据包_会Python?那么你一定要试一试mitmproxy
  7. ffmpeg视频处理
  8. The system is running in low-graphics mode
  9. Linux笔记之shell script
  10. 如何在Java项目中定义并调用自己编写的native方法?
  11. m3u8手机批量转码_M3U8批量转换app-M3U8批量转换MP4软件下载v1.0 安卓版-西西软件下载...
  12. C程序的基本组成结构
  13. 儿童python编程入门-儿童编程python入门
  14. 英语名言警句100句
  15. 电脑文件夹加密怎么做?6步教你设置文件夹密码
  16. 解决Navicat远程服务器2013-Lost connection to MYSQL server at 'waitting for initial communication packet'
  17. DNS域传送漏洞--vulhub复现
  18. B4A +GoLang 实现手机端webserver
  19. 专访网易游戏美术总监:寻找美术风格的蓝海
  20. java计算机毕业设计springboot+vue足球联赛管理系统

热门文章

  1. Yet Another Broken Keyboard
  2. 解决jupyter notebook的kernel error内核启动失败问题
  3. linux --开机自动挂载硬盘【转】
  4. opc服务器组态文件已写保护_iscada电力组态监控源代码,电力组态版,只有opc驱动版本...
  5. python水平_python水平
  6. python安装库后无法调用摄像头_银川监控摄像头安装,有人在代码里下毒!慎用 pip install 命令...
  7. 3d打印 路径规划_“光博会+工博会”双展来袭!这个9月,知象光电3D视觉工业应用方案,重磅亮相!...
  8. python size和count_python中size和count的区别
  9. YCrCb与YPrPb的含义与区别
  10. 机器学习与分布式机器学习_我将如何再次开始学习机器学习(3年以上)