num

洛谷 题解 P1467 【循环数 Runaround Numbers】

蹲街弑〆低调 提交于 2020-01-28 00:50:47
eh...我把这道题做成了搜索! 主要思路:从输入的数+1开始,不断往上循环,判断该数是否为循环数。 这道题主要考验你的耐心,看起来容易,做起来难! 话不多说,奉上AC代码(注释均在代码内) #include<iostream> using namespace std; int x; int cnt; int old_num[12],num[12]; bool ans[12]; void statistics(int a)//统计该数的数位长度和各个数位 { cnt=0; while(a!=0) { cnt++; old_num[cnt]=a%10; a/=10; } } bool all()//判断每一位是否都遍历过了 { for(int i=1;i<=cnt;i++) { if(!ans[i]) return false; } return true; } bool dfs(int pointer) { int far;//指循环到的下一位 far=(pointer+num[pointer])%cnt; if(far==0) far=cnt; if(far==1&&all())//全部遍历过且下一位是第一位,就是循环数 return true; if(far==1&&!all())//虽然下一位是第一位但是并没有把每一位全部遍历,还不是循环数 return false; if

面向对象程序设计寒假作业一解题报告

依然范特西╮ 提交于 2020-01-27 22:49:10
这个作业属于哪个课程 面向对象程序设计 这个作业要求在哪里 面向对象程序设计寒假作业1 这个作业的目标 安装C++开发环境、回顾知识、查看自己的C++编译器版本、使用命令行编译一份C语言/C++代码、实现简单的中文编程、编写博客 作业正文 问答题 、 实践题 、 编程题 其他参考文献 C语言的不足之处 C语言的缺陷 C语言的编译过程 一、问答题 1.如果你不了解C++请回答以下问题:你认为C语言有什么缺陷(你觉得哪里用的不顺手)。 如果你已经了解C++请回答以下问题:你觉得C++和C语言比有什么优点。 我对C++不怎么了解,在使用C语言的过程中,我发现了以下问题: (1)C语言语法限制不严格,对变量的类型约束不严格,影响程序的安全性,比如C语言中将一个浮点型数据赋给一个整型变量,编译时只会警告,不会报错。 (2)C语言是面向过程的语言,写大项目的时候很容易崩溃。 (3)C语言存在着一些不应该存在的语法限制。例如, switch语句由 case结构组成,每个 case结束之后都要使用一个 break来跳出 case结构,否则将会继续执行下面的 case,这样就会造成错误。 2.查阅相关资料,简述一下C语言/C++的编译过程。 过程:C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 编译---->形成目标代码

函数的四种调用方式

流过昼夜 提交于 2020-01-27 22:48:51
函数的四种调用方式 函数有下列调用模式 函数调用模式 方法调用模式 构造器模式 上下文模式 1. 函数调用 模式 要调用,就肯定要先定义,函数的定义方式: 声明式: function fuc() {} 表达式式: var func = function() {}; Function: new Function( ‘参数’,…,’函数体’ ); 单独独立调用的,就是函数调用模式,即 函数名( 参数 ),不能加任何其他的东西, 对象 o.fuc() 就不是了。 在函数调用模式中, this 表示全局对象 window 任何自调用函数都是函数模式。 2. 方法调用 模式 method 所谓方法调用,就是用对象的方法调用。方法是什么,方法本身就是函数,但是,方法不是单独独立的,而是要通过一个对象引导来调用。 就是说方法对象一定要有宿主对象。 即 对象.方法(参数) this表示引导方法的对象,就是指宿主对象 对比-函数调用模式: 方法调用模式是不是独立的,需要宿主,而函数调用模式是独立的 方法调用模式方式:obj.fuc(); 函数调用模式方式: fuc(); 方法调用模式中,this指宿主。而函数调用模式中 this 指 全局对象window 美团的一道面试题 var length = 10; function fn ( ) { console.log( this.length ); /

python学习笔记(一):python简介和入门

回眸只為那壹抹淺笑 提交于 2020-01-27 22:18:16
最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程。 一、什么是python? python是一种面向对象、解释型的计算机语言,它的特点是语法简洁、优雅、简单易学。在1989诞生,Guido(龟叔)开发。这里的python并不是蟒蛇的意思,而是龟叔非常喜欢一部叫做《 Monty Python 飞行马戏团》的电视剧,所以以python命名(老外就是这么任性)。 二、解释型语言和编译型语言 编译型语言就是先把写好的程序翻译成计算机语言然后执行,就是所谓的一次编译到处运行,比如c、c++就是编译型语言,这样的语言特点是运行速度快,但是需要事先把程序编译好才可以。 解释型语言就是程序在运行的时候,通过一个解释器,把代码一句一句的翻译成计算机语言然后运行,也就是你写好代码之后直接就能运行,比如说python、shell、ruby、java、perl等等都是解释型语言,当然这样的语言由于原理不一样,执行速度并没有编译型语言快。 三、选择python2.x还是python3.x? 现在python有2.x版本和python3.x版本,在选择版本这个事情上,很多人都是比较纠结的。到底选择2还是3,因为2和3代码是不怎么兼容的,现在比较常用的是2.7版本,2.7版本其实是一个过渡版本,在2008年的时候推出了3

安卓--数据存储和访问

陌路散爱 提交于 2020-01-27 20:25:59
实验目的: 分别使用sqlite3工具和Android代码的方式建立SQLite数据库。在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加、删除和更新。 实验要求: 创建一个学生管理的应用,基本信息包含学生姓名,班级,学号。采用数据库存储这些信息。 应用应该至少包含信息录入和删除功能。 数据显示考虑采用ListView。 (1) 使用sqlite3工具建库: 使用adb前,需要先把adb加入环境变量:C:\Users\Flyuz\AppData\Local\Android\Sdk\platform-tools 然后在cmd或android studio命令行中进入adb shell。 出现的问题: Android 7 无法获得root 权限 ,不能进入data/data/com.example.flyuz.sqlite6文件夹,所以不能建库, 解决方法:1 在命令行中前后使用 adb root adb remount (我不管用) 2 使用Android 6的虚拟机即可获得root权限。 步骤: 进入adb shell cd data/data/com.example.flyuz.sqlite6 建数据库文件夹 mkdir databases 建数据库 sqlite3 student.db Create table studentinfo(num text

lectcode-多数元素

痴心易碎 提交于 2020-01-27 18:51:12
要求 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 代码 暴力法 int majorityElement(vector<int>& nums) { int num = 0,ret = 0; for(int i = 0;i<nums.size();i++) { int count = 0; for(int j = 0;j<nums.size();j++) { if(nums[i]==nums[j]) count++; } if(count > num) { num = count; ret = nums[i]; } if(num>nums.size()/2) return ret; } return -1; } 哈希法 int majorityElement(vector<int>& nums) { unordered_map<int,int> hash; for(int i = 0;i<nums.size();i++) { ++hash[nums[i]]; if(hash[nums[i]]>nums.size()/2) return nums[i]

寒假作业1.3

时光毁灭记忆、已成空白 提交于 2020-01-27 15:08:21
这次的编程作业我把需求分为输入,汉字转为数字,计算,数字转为汉字并输出4个部分 而其中最重要也是最难的部分是汉字转为数字阶段,我先在开始开辟两个字符数组用来存放汉字的零至十和会输入的指令 同时将零至十和数组地址做好一一对应以方便后续查找 char key[6][20]={"整数","钱包","等于","增加","减少","看看"}; char num[11][4]={"零","一","二","三","四","五","六","七","八","九","十"}; 以及做好一个报错函数来让我不用每次都要打那段话(斜眼笑) void error(){ printf("输入错误\n"); }//输入报错情况 然后就是汉字转数字阶段,我用了这么一大段代码来处理转换,同时若发现输入的中文数字不符合规范,将返回(-1)来供程序进行报错与重新输入 int change(char a[20]) { int i,n,sum; char x[10],y[10]; n=strlen(a); if(n==2)//0-10的输入 { for(i=0;i<=11;i++) { if((strcmp(a,num[i])==0)) return i; if(i==11) return -1; } } if(n==4)//11-20以及10的倍数 { for(i=0;i<2;i++){ x[i]=a[i]; } for

Python变量作用域和引用范围

只谈情不闲聊 提交于 2020-01-27 14:25:36
变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域 以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。 x = int ( 2.9 ) # 内建作用域 g_count = 0 # 全局作用域 def outer ( ) : o_count = 1 # 闭包函数外的函数中 def inner ( ) : i_count = 2 # 局部作用域 Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问,如下代码: >> > if True : . . . msg = 'I am from Runoob' . . . >> > msg 'I am from Runoob' >> >

3693: 圆桌会议

瘦欲@ 提交于 2020-01-27 13:10:13
3693: 圆桌会议 https://www.lydsy.com/JudgeOnline/problem.php?id=3693 分析:   Hall定理+线段树。   如果将桌子放到左边,每组的人拆开放到右边,就成了二分图匹配问题,问是否存在完美匹配。   Hall定理:设二分图中G=<V1,V2,E>中 |V1|=m<=|V2|=n,G中存在从V1到V2的完全匹配当且仅当V1中任意k(k=1,2,...,m)个顶点至少与V2中k个顶点是相邻的。   但是此题中,判断左边所有的Li,Ri就行了。   首先如果左边的桌子没有被一些人选到(即没有边),显然不用考虑。然后只去考虑剩下的点的子集复杂度也是2^n级别的。剩下的许多桌子一定是被一些组的人选到了。考虑一组人选到的桌子Li,Ri,那么这些桌子向右边对部分人连的边是相同的(每个桌子都连向这组的每个人),那么只要判一下这个区间是否满足Ri-Li+1>=Σai(连向右边的点的点数)就行了。这个区间的子集就可以不用考虑了,因为每个点连出的边都一样。然后在查一下多个区间和来的情况,就是最小的l,和最大的r之间。   所以查询的时候只需要查任意的L与任意的R就行了。然后查询就是R-L+1>=s(s为L~R这些点连向右边的点数),R>=s+L-1,然后对于每个Ri查询所有小于Ri的L,是否满足这个式子。线段树维护这个值

数据竞赛-模型选择

a 夏天 提交于 2020-01-27 09:13:16
from __future__ import print_function import lightgbm as lgb import sklearn import numpy import hyperopt from hyperopt import hp , fmin , tpe , STATUS_OK , Trials import colorama import numpy as np N_HYPEROPT_PROBES = 500 HYPEROPT_ALGO = tpe . suggest # tpe.suggest OR hyperopt.rand.suggest colorama . init ( ) def get_lgb_params ( space ) : lgb_params = dict ( ) lgb_params [ 'boosting_type' ] = space [ 'boosting_type' ] if 'boosting_type' in space else 'gbdt' lgb_params [ 'objective' ] = 'regression' lgb_params [ 'metric' ] = 'rmse' lgb_params [ 'learning_rate' ] = space [ 'learning_rate' ] lgb