三连击(NOIP1998)
题目链接:三连击
典型的打表题,但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
三连击(NOIP1998)的更多相关文章
- C++算法代码——三连击[NOIP1998 普及组]
题目来自:https://www.luogu.com.cn/problem/P1008 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目 ...
- 【NOIP1998】 三连击 题解
文章转载前需和原作者联系,否则追究法律责任 题目链接:https://www.luogu.com.cn/problem/P1008 首先我们来分析一下题目.要求是枚举三个数,比例为1:2:3,且各个数 ...
- C#基础练习(时间的三连击)
Form1的后台代码: namespace _07事件的三连击 { public partial class Form1 : Form { public Form1() ...
- Cocos2D-X2.2.3学习笔记8(处理精灵单击、双击和三连击事件)
我们依据上一次介绍的触屏事件和事件队列等知识来实现触屏的单击,双击,三连击事件. 下图为我们实现的效果图: 单击精灵跳跃一个高度, 双击精灵跳跃的高度比单击的高 三连击精灵跳跃的跟高 好了,開始动手吧 ...
- [Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述
各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在研究了Unity3D Mecanim动画系统的重定向特性后,今天我们继续来探索Me ...
- 最大整数(Noip1998连接多位数)
最大整数(Noip1998连接多位数)[问题描述] 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:343312 ...
- 洛谷——P1618 三连击(升级版)
P1618 三连击(升级版) 题目描述 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”. //感谢 ...
- Unity2D实现人物三连击
之前写过一个系列<HTML5 2D平台游戏开发>,在此过程中发现有很多知识点没有掌握,而且用纯JavaScript来开发一个游戏效率极低,因为调试与地图编辑都没有可视化的工具,开发起来费时 ...
- 洛谷 P1618 三连击(升级版)【DFS/next_permutation()/技巧性枚举/sprintf】
[链接]:https://www.luogu.org/problemnew/show/P1618 题目描述 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试 ...
随机推荐
- mock.js 劫持 ajax,模拟数据
http://mockjs.com/ Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型. ...
- pta l3-1(凑零钱)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805054207279104 题意:给定n枚硬币的面值,需要支付 ...
- 前端、数据库、Django简单的练习
一.前端 1.前端页面由哪几层构成,分别是什么,作用是什么? 分为:结构层(html),表示层(css),行为层(js). 结构层 超文本标记语言.由HTML或XHTML之类的标记语言负责创建.标签, ...
- numpy的使用数组的创建2
随机创建了长度为十的数组 获得十以类的随机整数 快速获取数组2乘3维的数组 生成20个1到10之间的数组 通过reshape 将这些数变成二位数组 shape这个方法可以查看数组中的元素是几行几列的
- 23【notepad++】修改背景颜色
notepad++是一款功能丰富的编辑器,运行在windows平台上的编辑工具. 但它默认设置是白色背景,黑色文字,长时间看很刺眼.那么怎么设定成为暗色背景,亮色文字呢? 点击,设置->语言格式 ...
- 【Linux 系统】Linux探秘之用户态与内核态
一. Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核).内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程 ...
- js replaceAll全部替换
js不支持replaceAll,可以用函数new RegExp('要替换的内容','g')代替, 代码: str.replace(new RegExp('要替换的内容','g'),"替换内容 ...
- [leetcode]300. Longest Increasing Subsequence最长递增子序列
Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Inp ...
- idea中快捷键设置为eclipse中快捷键
打开file-settings,然后搜索key,在keymap中选择eclipse (1) (2)
- rsync同步工具的配置与使用
一.什么是rsync?rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具. rsync官网 http://rsync.samba.org/ 二.rsync的工 ...