last

keras默认配置

亡梦爱人 提交于 2019-12-01 09:43:49
使用keras后,会在用户目录下生成.keras/keras.json文件,Windows下为:C:\Users\user\.keras\keras.json,Linux下为:~/.keras/keras.json 具体内容如下: { "floatx": "float32", "epsilon": 1e-07, "backend": "tensorflow", "image_data_format": "channels_last" } floatx:浮点数精度 epsilon:ε的取值 backend:后端程序,可以选择为tensorflow,theano,cntk image_data_format:指定图片数据的处理格式,取值为channels_last或者channels_first.   channels_last:2D数据格式为(rows, cols, channels),3D数据格式为:(conv_dim1, conv_dim2, conv_dim3, channels)   channels_first:2D数据格式为(channels, rows, cols),3D数据格式为:(channels, conv_dim1, conv_dim2, conv_dim3) 现在tensorflow已经发布了2.0版本,如果使用tensorflow做为backend

24、处理重复数据

蓝咒 提交于 2019-12-01 09:28:34
处理重复数据 1、防止表中出现重复数据 你可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。 1.1、 使用 primary key 确保数据的唯一性,数据不能为null CREATE TABLE person_tbl ( first_name CHAR(20) NOT NULL, last_name CHAR(20) NOT NULL, sex CHAR(10), PRIMARY KEY (last_name, first_name) ); insert into person_tbl values ('zhang','san','男'); insert into person_tbl values ('zhang','san','男'); 1062 - Duplicate entry 'san-zhang' for key 'PRIMARY' 1.2、 使用 unique 来确保数据的唯一性,数据可以为null CREATE TABLE person_tbl ( first_name CHAR(20), last_name CHAR(20), sex CHAR(10), UNIQUE (last_name, first_name) ); insert into person_tbl values (

北京地铁最短路径

自闭症网瘾萝莉.ら 提交于 2019-12-01 09:17:23
gethub地址 地铁信息存储格式 23#地铁路线数 #地铁名称 1 23#1号地铁,23个站点 苹果园 0#站点名称 是否为换乘站 存储结构 typedef struct{ char station[N]; int change; } sta; typedef struct{ int weight; int L; } G; sta vertex[NUM]; G graph[NUM][NUM]; int Vsum; pair<int,int> path[NUM]; int s[NUM]; int dis[NUM]; string linename[NUM]; int coutt[NUM]; int top=-1; 寻找起始站,终点站的对应下标信息 int search(char *s){ int i; for (i=0; i<Vsum; i++) { if (!strcmp(vertex[i].station,s)) { return i; } } return -1; } 输出换乘路线 void print(int V1,int V2){ string r=""; path[V1].first=-1; int now=V2,nowL=path[V2].second,ttt; while(now!=V1&&now){ //printf("%s\n",vertex[now]

Kattis - nvwls (AC自动机last优化 + dp)

孤者浪人 提交于 2019-12-01 07:52:40
题意 给出一个字典,每个单词去掉元音字母 A、E、I、O、U 之后形成一个新字典。 先给出一个只有辅音组成的串,用原字典中的单词还原该串,若存在多种还原方式,输出还原后元音字母数量最多的那种,若依旧多种,则任意输出。 传送门 思路 ac自动机fail树上跑dp的一眼套路题。 总结一下遇到的坑: 多个单词去掉元音字母之后形成的新单词相同。 若原单词只有辅音字母。 dp过程中未保证完全还原辅音串。 特殊样例将 跳fail的过程卡成了 \(n^2\) 。 解决办法: 在字典树的结尾节点保存编号时,保存最大值。 将初值从 $0 $ 改为 \(-1\) 。 dp数组初值同样改为 \(-1\) , \(dp[0] = 0\) ,dp只能由非 \(-1\) 的状态转移。 对fail数组进行 last优化 。 last[u] = len[fail[u]]? fail[u]: last[fail[u]]; 。 last优化 普通方法将建图+匹配的复杂度成功优化为了 𝑂(∑𝑛+𝑚) ,但是,匹配成功时的计数也是需要跳fail边的。然而,为了跳到一个结束节点,我们可能需要中途跳到很多没用的伪结束节点: 如果一个节点的fail指向一个结尾节点,那么这个点也成为一个(伪)结尾节点。在匹配时,如果遇到结尾节点,就进行相应的计数处理。 这里面就又有优化的余地了:对于不是真正结束节点的伪结束点,直接跳过它就好了

LODOP中带caption的表格被关联并次页偏移测试

試著忘記壹切 提交于 2019-12-01 07:45:57
ADD_PRINT_TABLE中的thead和tfoot可以每页输出,后面的打印项关联表格,可以紧跟着表格,实现在表格后面紧跟着输出内容的效果,表格可以自动分页,并总是跟在表格后面 ,在表格最后输出。table相关博文: LODOP表格table简短问答及相关博文 、 例如,在table后面紧跟着输出一段htm超文本内容,由于表格是不固定的,有时候表格内容多有时候少,可能有时候正好在最后一页,后面的htm超文本盛放不开,也需要自动分页了。 表格中由于第一页有标题,常用到次页偏移,让除第一页后的表格能提上去,避免后面的自动分页上方空白。 如果有table中有caption,注意该caption也是表格内部的高度,次页偏如果想很靠上,也会把caption的距离偏移上,但是其实caption是表格打印项的高度,而后面的htm由于关联前面的表格,形成关联串,也会跟着前面的table的偏移距离进行偏移,但是后面的htm是没有caption的,所以就会导致htm偏移出纸张外的情况。 解决方法: 建议 把caption放到外面,caption单独做成打印项,或者和前面的标题打印项等做成一个超文本打印项 ,不要放在自动分页并进行次页偏移的table打印项里面。 (如果最后的htm不是刚好最后页不够,进行自动分页,是不会有影响的,但是如果刚好遇到最后跟着的html进行自动分页

SGI STL 源码 vector 分析

≡放荡痞女 提交于 2019-12-01 07:41:00
前言 vector 是最常用的 C++ 容器,其动态扩容的特性是普通数组无法具备的,大大增加了编程的灵活性。虽然能基本理解其基本原理,但也无法深层次理解,直到研读了 vector 的源码,才能比较自信的说自己真正理解了 vector 的基本原理,正应了侯捷说的那句话:源码面前,了无密码。我会分两篇文章分别分析泛化 vector 和针对 bool 类型的特化 vector(即是 bit_vector,位vector)。本文将分析泛化的 vector 的源码。 vector概述 vector 是动态扩容的连续数组。普通数组是静态空间,一旦配置就无法改变,而 vector 是动态空间,其内部机制会自动扩充空间以容纳更多的元素。其动态扩容的具体过程是:当容器没有备用空间时,会开辟一块是旧空间两倍大小的新空间,将数据从旧空间复制到新空间并释放原空间。因此,vector 对内存的合理利用和运用的灵活性有很大帮助,我没再也不用考虑数组的容量不足的问题。 vector 源码分析 本文分析的 vector 源码是侯捷老师《STL源码剖析》用的 SGI-STL-v2.91 的版本。其泛化版本的 vector 具体实现在 stl_vector.h 文件中,部分源码如下: // alloc 是 SGI STL 的空间配置器 template<class T, class Alloc = alloc>

线性表

旧街凉风 提交于 2019-12-01 07:08:51
什么是线性表? 由0个或多个元素组成的有限序列。 point: 序列=有序性 多个元素的线性表,第一个元素没有前驱,最后一个元素没有后继,其他元素有且仅有一个前驱,一个后继。 0个元素构成的线性表称为空表 线性表的分类 线性表分为顺序表,链表,其中链表又可分为单链表,双向链表 顺序表 采用顺序存储方式,其特点是逻辑上相邻的点物理上也相邻,插入删除效率低,查找效率高 基于数组实现 由于采用顺序存储方式,所以需要连续的存储空间,也就意味着长度必须是固定的。 单链表 采用链式方式存储,其特点是逻辑上相邻的点物理上并不一定相邻,插入删除效率高,查找效率低 链式存储是采用节点来进行存储的,每个节点包括data域和next域。 基于指针实现,但Java中是没有指针的。或者说,是C的变种指针,称为引用。与C不同的是,Java中的引用在考虑安全性的前提下,是不允许修改的。 【网上看到了一个关于Java指针和C++的区别比喻】 在java中可以坐飞机到指定的目的地,但是你不能开飞机(安全)。但是在C++中可以自己开飞机(操作飞机)--具有危险性。 换句话说,Java中的指针只能被使用,而不能像C++中可以自由修改。 【如果Java中指针的引用是不可修改的,那么链表的插入删除操作导致的next域中引用的改变是如何实现的?】 指针应用的粒度过大,解决这个问题得从Java中对象的存储堆栈结构说起。

今年暑假不ac的java版,虽然不懂的贪心但贪心是一种很自然的思想,写着写着就用到了贪心

人走茶凉 提交于 2019-12-01 06:55:42
import java.util.*; class node implements Comparable<node> { int begin; int end; @Override public int compareTo(node arg0) { if(this.begin==arg0.begin)return this.end-arg0.end; else return this.begin-arg0.begin; } } class solution { private int T=0; private ArrayList<node> res=new ArrayList<node>(); private Scanner iner=new Scanner(System.in); private int src=0; private int last=0; public void add() { while(iner.hasNext()) { T=iner.nextInt(); src=0; last=0; res.clear(); if(T==0) { break; } for(int i=0;i<T;++i) { node temp=new node(); temp.begin=iner.nextInt(); temp.end=iner.nextInt(); res.add

NOIP2012 疫情控制 (二分+倍增+贪心)

北城以北 提交于 2019-12-01 04:56:21
肝了一个下午,终于把这个绝世好题写完了(滑稽) 满分做法: 看到题目求最短时间,说明更高的时间也可以控制,满足答案单调性,可以二分;(技巧) 看到这些比较复杂的题目,一定要滤清自己该干什么,不要慌!!! 显然一个军队最后停留的节点深度越小,它控制的叶子结点越多。所以我们尽量让军队往上走, 如果过程中它达到了时间限制,那么就把当前节点打上驻扎标记。 若一个军队可以走到根节点,我们让他暂停。我们记录它到达根节点后剩余的时间,可以用二元组去存储。整个过程可以用倍增去解决。 void dfs(int x)//倍增预处理 { for(int p=last[x];p;p=pre[p]) { int v=other[p]; if(v==jump[x][0]) continue; jump[v][0]=x; dis[v][0]=len[p]; dfs(v); } } bool sta[50007];//该节点是否驻扎 pair<ll,int> h[50007];//二元组记录上移后闲置军队,second为上移后的节点 ,first为剩余时间 int ctot=0; for(int i=1;i<=m;i++) { int x=id[i];//军队位置 ll cnt=0;//上移时间 for(int j=19;j>=0;j--)//倍增 { if(jump[x][j]>1&&cnt+dis[x][j]

10/10

允我心安 提交于 2019-11-30 22:39:48
A: 题意:给一个大小为n的数组A,让你把A分成若干个(1 or more)新的数组,使得新数组的和不为0; 解:NO的情况只有 数组内所有元素都为0   YES的情况:1.数组A的所有元素和不为0:直接输出(1,n);         2.数组A的所有元素和为0:必定存在sum(1,i)!=0,sum(i+1,n)!=0;//(sum(1,i)表示元素下标和(1-i)) #include <bits/stdc++.h> using namespace std; const int MAXN=1e5+10; int a[MAXN]; int main(){ int n; cin>>n; int sum=0; for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i]; } if(sum){ cout<<"YES"<<endl; cout<<1<<endl; cout<<1<<' '<<n<<endl; } else{ int flag=0; for(int i=1;i<=n;i++){ sum+=a[i]; if(sum){ flag=1; cout<<"YES"<<endl; cout<<2<<endl; cout<<1<<' '<<i<<endl; cout<<i+1<<' '<<n<<endl; break; } } if(!flag)cout<<