三连击(NOIP1998)
来源:互联网 发布:齐鲁商品交易软件下载 编辑:程序博客网 时间:2024/06/10 04:32
题目链接:三连击
典型的打表题,但cgg今天不是教你怎么打表的,而是教你正解。
这题方法多样,比如递归求解也行,反正数据也不大。
在这里我提供另一种思路,我们枚举第一个数,即最小的一个数,然后分解它以及它的两倍,它的三倍的数位,然后判断是否又相同的数位,还要注意判断是否又0的存在(题目是不允许的,但这样的数却存在)。下面给出代码:
#include<bits/stdc++.h>using namespace std;int main(){ int vis[11],num[11]; //1 for(int i=123;i<=329;i++){ //2 memset(vis,0,sizeof(vis)); //3 num[1]=i%10; num[2]=i/10%10; num[3]=i/10/10%10; num[4]=2*i%10; num[5]=2*i/10%10; num[6]=2*i/10/10%10; num[7]=3*i%10; num[8]=3*i/10%10; num[9]=3*i/10/10%10; int ok=1; //4 for(int j=1;j<=9;j++){ if(vis[num[j]]==0&&num[j]!=0){ //5 vis[num[j]]=1; }else{ ok=0; break; } } if(ok){ printf("%d %d %d\n",i,2*i,3*i); } } return 0;}
还是提5处,
1处:vis统计数位有没有用过,num保存每一个数
2处:由于位数不想重,所以最小为123,又因为i*3<=987,所以i枚举到329就行
3处:每一轮判断前要把vis清零
4处:设置标识符
5处:注意判断是不是数字0
阅读全文
0 0
- 三连击(NOIP1998)
- 三连击
- 三连击
- 【洛谷】P1008 三连击
- OJ之三连击
- luogu【P1008】三连击
- P1008 三连击
- P1008 三连击
- 洛谷P1008 三连击
- 洛谷P1008 三连击
- P1008 三连击
- 洛谷P1008 三连击
- 新手村 循环 三连击
- 平衡树三连击
- 洛谷 P1008 三连击
- [LUOGU1008]三连击
- 洛谷 P1008 三连击
- 洛谷 P1008三连击 & P1618三连击(升级版)
- mysql索引最左匹配原则的理解?
- 设计模式-策略模式(Strategy)
- 哈希--数组实现和邻接链表
- caffe Visual Studio 安装配置
- Android Monkey测试入门-4-Monkey高级参数之throttle
- 三连击(NOIP1998)
- Java面试问题
- 338. Counting Bits-medium
- 公众号“今日作文素材”文章列表 (20170812-20170818)
- css3 box-sizing属性
- java--事务处理
- JS基础语法(二)
- (11) 中间说的话-每天五分钟学习数据结构
- 获取当前时间,和时间相减