num

[ICPC训练联盟周赛2][东华大学] UCF Local Contest 2015 题解

眉间皱痕 提交于 2020-02-26 18:17:31
UCF Local Contest 2015 解题报告 东华大学ACM集训队 2020年2月 A.Find the Twins 题目大意 给定长度为10的数列,若数列中只含有18,输出Mack。若只含有17,输出Zack。若同时含有18和17,输出both。若不含18和17,输出none。 题解 签到题,略。 Code #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; int main(){ int N; scanf("%d",&N); while(N--){ bool Mack=false,Zack=false; for(register int i=1;i<=10;++i){ int x;scanf("%d",&x); printf("%d",x); if(i<10) printf(" "); if(x==18) Mack=true; else if(x==17) Zack=true; } printf("\n"); if(Mack && Zack) printf("both\n"); else if(!Mack && !Zack) printf("none\n"); else if(Mack) printf("mack\n");

LeetCode周赛-177

我只是一个虾纸丫 提交于 2020-02-26 14:30:06
1.日期之间隔几天 【思路】计算两个日期和1970-1-1之间相隔的天数,然后相减即可。需要注意闰年闰月的判断。 int getday(int *d1){ int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int day1=0,i; for(i=1970;i<d1[0];i++){ if(i%400==0||(i%100!=0&&i%4==0)){ day1+=366; }else{ day1+=365; } } for(i=1;i<d1[1];i++){ day1+=month[i-1]; if(i==2){ if(d1[0]%400==0||(d1[0]%4==0&&d1[0]%100!=0)){ day1++; } } } day1+=d1[2]; return day1; } int* getdate(char * date){ int i,len,top=0; int *num=(int*)malloc(sizeof(int)*3); // memset(num,0,sizeof(num)); num[0]=0;num[1]=0;num[2]=0; len=strlen(date); for(i=0;i<len;i++){ if(date[i]=='-'){ top++;continue; } num[top]

python函数基础

与世无争的帅哥 提交于 2020-02-26 14:15:12
一,函数是什么?   函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。   函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。   函数定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用其函数名即可 函数特性: 代码重用 保持一致性 可扩展性 二,函数的创建 2.1格式:   python定义函数使用def关键字,一般格式如下: def 函数名(参数列表): 函数体   举个例子: def hello(): print("hello") hello() #调用 # 结果:hello 2.2函数名的命名规则: 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号; 函数名是区分大小写的。 函数名不能是保留字。 2.3形参和实参   形参 :形式参数,不是实际存在,是虚拟变量,在定义函数和函数体的时候使用形参

windows10+keras下的yolov3的快速使用及自己数据集的训练

谁说我不能喝 提交于 2020-02-26 12:01:38
引用: https://blog.csdn.net/weixin_42769131/article/details/88849903 该版本yolov3使用者较多,但是文章里有重要步骤遗漏,在这里补充之。 一、环境要求 tensorflow-gpu keras pycharm 二、快速使用 1、下载yolov3代码:https://github.com/qqwweee/keras-yolo3 ,并解压缩之后用pycharm打开。 2、下载权重:https://pjreddie.com/media/files/yolov3.weights并将权重放在keras-yolo3的文件夹下。如下图所示: 3、执行如下命令将darknet下的yolov3配置文件转换成keras适用的h5文件。 python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 4、运行预测图像程序 python yolo_video.py --image 输入需要预测的图片路径即可,结果示例如下: 这样就可以实现yolov3的快速使用了。 三、训练自己的数据集进行目标检测 1、在工程下新建一个文件夹VOCdevkit,目录结构为VOCdevkit/VOC2007/,在下面就是新建几个默认名字的文件夹 Annotations,ImageSets

Python性能优化的20条建议

会有一股神秘感。 提交于 2020-02-26 10:33:59
优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。 减少冗余数据 如用上三角或下三角的方式去保存一个大的对称矩阵。在0元素占大多数的矩阵里使用稀疏矩阵表示。 合理使用copy与deepcopy 对于dict和list等数据结构的对象,直接赋值使用的是引用的方式。而有些情况下需要复制整个对象,这时可以使用copy包里的copy和deepcopy,这两个函数的不同之处在于后者是递归复制的。效率也不一样:(以下程序在ipython中运行) import copy a = range(100000) %timeit -n 10 copy.copy(a) # 运行10次 copy.copy(a) %timeit -n 10 copy.deepcopy(a) 10 loops, best of 3: 1.55 ms per loop 10 loops, best of 3: 151 ms per loop timeit后面的-n表示运行的次数,后两行对应的是两个timeit的输出,下同。由此可见后者慢一个数量级。 使用dict或set查找元素 python

强化学习 ---baselines项目之 Atari游戏的网络结构解析

二次信任 提交于 2020-02-26 03:11:25
这个baselines项目设计的比较灵活,结构有点复杂。由于项目庞大,各个函数之间又是相互调用,有时候从一个函数追溯下去,可以追溯6,7层,每个函数的超参数又特别多,很容易把人搞晕。 接下来只看DQN部分的源码,其他无关的先不看,沿着一条线分解它!接下来进行一个递归游戏,一层一层的深入探索,探索到尽头再返回,当然中途适当剪剪枝,跟网络图无关的部分先不访问! 首先,我们找 递归入口 ,在deepq下有个 experiments ,这下面全是实例,pong就是一个Atari游戏的实验。 以下是trian_pong的代码 1. from baselines import deepq from baselines import bench from baselines import logger from baselines . common . atari_wrappers import make_atari import numpy as np np . seterr ( invalid = 'ignore' ) def main ( ) : logger . configure ( ) env = make_atari ( 'PongNoFrameskip-v4' ) env = bench . Monitor ( env , logger . get_dir ( ) ) env =

bing壁纸批量下载爬虫脚本

烈酒焚心 提交于 2020-02-26 02:47:15
- - coding: utf-8 - - import requests import shutil import os from bs4 import BeautifulSoup def parse_page(url): """ 根据 url 下载页面并转换成 soup 对象 :param url: 页面 url 链接 :return: soup 对象 """ page = requests.get(url).content return BeautifulSoup(page, 'html.parser') def parse_page_num(soup): """ 解析页面,返回总页数 :param soup: 页面 soup 对象 :return: 总页数 """ total_page_num = 0 page_div = soup.find('div', attrs={'class': 'page'}) if page_div and page_div.span: page_span_str = page_div.span.string page_num_list = page_span_str.split(' / ') if len(page_num_list) == 2: total_page_num = int(page_num_list[1]) return

《动手学深度学习》Task10:图像分类案例2+GAN+DCGAN

耗尽温柔 提交于 2020-02-26 02:11:09
1 图像分类案例2 Kaggle上的狗品种识别(ImageNet Dogs) 在本节中,我们将解决Kaggle竞赛中的犬种识别挑战,比赛的网址是https://www.kaggle.com/c/dog-breed-identification 在这项比赛中,我们尝试确定120种不同的狗。该比赛中使用的数据集实际上是著名的ImageNet数据集的子集。 # 在本节notebook中,使用后续设置的参数在完整训练集上训练模型,大致需要40-50分钟 # 请大家合理安排GPU时长,尽量只在训练时切换到GPU资源 # 也可以在Kaggle上访问本节notebook: # https://www.kaggle.com/boyuai/boyu-d2l-dog-breed-identification-imagenet-dogs import torch import torch . nn as nn import torch . optim as optim import torchvision import torchvision . transforms as transforms import torchvision . models as models import os import shutil import time import pandas as pd import

《动手学深度学习》Task06:批量归一化和残差网络 +凸优化+梯度下降

試著忘記壹切 提交于 2020-02-26 00:54:04
1 批量归一化和残差网络 1.1 批量归一化(BatchNormalization) BN的作用 Internal Convariate shift(内部协变量偏移)是BN论文作者提出来的概念,表示数据的分布在网络传播过程中会发生偏移,我们举个例子来解释它,假设我们有一个玫瑰花的深度学习网络,这是一个二分类的网络,1表示识别为玫瑰,0则表示非玫瑰花。我们先看看训练数据集的一部分: 直观来说,玫瑰花的特征表现很明显,都是红色玫瑰花。 再看看训练数据集的另一部分: 很明显,这部分数据的玫瑰花各种颜色都有,其特征分布与上述数据集是不一样的。 通俗地讲,刚开始的数据都是同一个分布的,模型学习过程中,模型的参数已经适合于一种分布,突然又要适应另一种分布,这就会让模型的参数发生很大的调整,从而影响到收敛速度和精度,这就是Internal covariate shift。 而BN的作用就是将这些输入值或卷积网络的张量进行类似标准化的操作,将其放缩到合适的范围,从而加快训练速度;另一方面使得每一层可以尽量面对同一特征分布的输入值,减少了变化带来的不确定性。 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。 标准化处理输入数据使各个特征的分布相近 批量归一化(深度模型) 利用小批量上的均值和标准差,不断调整神经网络中间输出

Python之reduce函数

若如初见. 提交于 2020-02-26 00:40:34
描述 reduce() 函数会对参数序列中元素进行累积。 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。 语法 reduce() 函数语法: reduce(function, iterable[, initializer]) 返回值 返回函数计算结果。 老方法,先给一个需求,把下面list中的数计算一个和 #用函数写法 num_l = [1,2,3,100] def reduce_test(array): res = 0 for num in array: res+=num return res print reduce_test(num_l) 上面写法问题是把计算方法写死了,所以要单独写一个函数 num_l = [1,2,3,100] def sumadd(x,y): res=x+y return res def reduce_test(func,array): res = 0 for num in array: res=func(res,num) return res print reduce_test(sumadd,num_l) 最后采用reduce函数和匿名函数结合 print reduce