坚持就是胜利

怎么能快速弄懂一件事呢,多看多查多思考

时间并不管我们活成什么样子,像狗一样活,也没人会念好,被铁锁压住了,也没人会理解,如果自己不救自己,就会在无人的角落中腐烂

那是怎样一种绝望啊,好像鸭子活成了鱼,连呐喊都成了气泡,心像是不会跳动了一样,生活就是恐惧和焦虑的堡垒把我囚禁

依靠别人,我这辈子都过不上想要的生活,人生真难,如果不努力,就会难上加难

让唐僧成佛的不是经书,而是那九九八十一难

每天只要不去争取,就会被ly抢走功劳,事情变得越来越有意思了

生活反复拉扯,我却野心勃勃

只有聪明人才能活的好,不要无谓的故作姿态

希望以后每天都觉得累的想哭

希望你掌握生活的脉搏

26岁都有人能身价30多亿了,怎样站到时代的风口浪尖呢

我最近总觉得,这一年应该是我人生中最轻松的一年了吧,没有孩子伴侣家长里短,工作琐事,后来我想明白了,现在是由过去决定的,我过去十二万分的努力,所以把我送到了现在的位置。如果现在这个好时机不积攒动能,以后就只会走下坡路

我也真是不怎么敢想,50之前想都不敢想,是我井底之蛙了

我年轻时的小姑娘,眼中总有锐利的目光,就像蓝色的火焰,跳跃在我的胸膛

追求最优秀的意义是,哪怕现在自己并没有那么优秀,但也会知道,自己终究会成为优秀的人。扒光自己羽翼委身于鸡群的凤凰,从自己认为自己不优秀的那刻起,就不再是凤凰了

天下没有不努力就能好好过的 日子,闭目塞听的只是偏安一隅 缩头乌龟罢了

当少年杀死巨龙的那一刻。事情才刚刚开始,一生飞黄腾达是件大事,需要一件件去筹谋。努力努力再努力,努力到无能为力。才能天光乍破,才能拨云见日

25页什么叫稀疏向量
29页推荐系统 矩阵分解
31 梯度提升决策树

33word stem词干抽取

34映射层 和隐层区别是啥 一样

35 word2vec

 

了Hierarchical

 

Softmax和Negative

 

Sampling两种改进方法
44 MAPE公式内涵
49第一行黄线为什么不必变化
54 KL散度啥意思

 

 

一、numpy(python科学计算的基础包)支持高维矩阵运算

与list区别:初始化后,numpy不可变 ,list可变(灵活)。

1. 4种变量

4种变量:统称为ndarray(n-dimension array n维数组)

scalar:一个数字

vector 一行数字 一维矩阵

matrix 矩阵

tensor 张量 三维以上的向量(哈哈,是不是有点像tensorflow)

2. 点乘(矩阵乘法) 星乘(对应元素乘)

import numpy
a = numpy.array([[1,2],
                 [3,4]])
b = numpy.array([[5,6],
                 [7,8]])

点乘
a.dot(b)
>>>array([[19, 22],
          [43, 50]])

星乘
a*b
>>>array([[ 5, 12],
          [21, 32]])

3.numpy广播

维度不同时,通过把少的复制到多的维度上,进行矩阵操作,行不足,可以复制,列不足,补1

 

做事法则:

似草非草,欲断不断,快快快

不要追求完美,快速做出草图,但不可以因为是草图就想着以后再完善,端正思想,一笔一划

每次思路分神要跑毛的时候,不要被其迷惑

天下武功,唯快不破

好的网址:

C++ STL

https://zhuanlan.zhihu.com/p/88806672

leetcode题目分类

https://lefttree.gitbooks.io/leetcode-categories/index.html

图解机器学习:

https://zhuanlan.zhihu.com/c_171761254

每日一题

《90题细品吴恩达《机器学习》,感受被刷题支配的恐惧 》https://www.kesci.com/home/project/5e0f01282823a10036b280a7

机器学习面试题

https://blog.csdn.net/v_JULY_v/article/details/78121924

大数据处理方法:

https://www.cnblogs.com/end/archive/2011/06/01/2067207.html

 

法令如山:

1.行动专心

2.先定计划

3.装——坐怀不乱,千方百计,各种哥哥(希望xz哥哥好起来)

4.绝对不copy

 

 

每日必做:

旧题

机器学习

ACM

 

 

机器学习方面的准备:

https://zhuanlan.zhihu.com/c_140166199

 

 

每道题都必须白板,自己实现,不可参照

 

新点子,实验把一道题多种解法分不同的天看,但是要做好记录

 

君子自强不息

有纲有目,专注果断

 

心狠手辣,果断智慧的优雅婆娘 是我今生对自己的定位

不刷题就是慢性自杀

不打ACM就是鼠目寸光

不用双重语言编程就是自毁思考

打比赛不看题解就是一错永错

不看旧题就是网漏捉鱼,鱼皆漏网

 

只要能成功,我无条件相信自己,无条件做自己的暴君

美刚万金砖

重在参与,敢于陪跑

人大多都容易焦虑,面对不确定的事,害怕的事,希望侥幸的事都会心存惶恐,但我知道。事不重要,或者说,不够重要,怎么在重压之下正常生活,调节情绪,高效努力,才是重要的,事上练的智慧

1.矩阵快速幂

2.马拉车算法

3.线段树

4.程序执行时,堆栈的存储分布

 现在开始用白板做题,重要的是要注意保存。

我认为,编译器有时会误导人,依赖编译器是编不好程序的。所以写完代码之后应该自查。逐渐锻炼成人形编译器

一些容易出错的可以帮助自查的部分:

数据类:

重复的数据

看不懂但觉得有用的问题:

https://www.zhihu.com/question/27168319

 

1.字典树

代码模板:

//对于字符串比较多的要统计个数的,map被卡的情况下,直接用字典树
//很多题都是要用到节点下标来表示某个字符串
const int maxn =2e6+5;//如果是64MB可以开到2e6+5,尽量开大
int tree[maxn][30];//tree[i][j]表示节点i的第j个儿子的节点编号,把tot的值赋给他
bool flagg[maxn];//表示以该节点结尾是一个单词,为真说明此处是单词结尾
int tot;//总节点数,计数是为了编号
void insert_(char *str)
{
   int  len=strlen(str);
   int root=0;//标记结束的编号
   for(int i=0;i<len;i++)
   {
       int id=str[i]-'0';
       if(!tree[root][id]) tree[root][id]=++tot;//没有就新建编号
       root=tree[root][id];//每次向下移动,最后一次出去就直接赋值
   }
   flagg[root]=true;
}
bool find_(char *str)//查询操作,按具体要求改动
{
    int len=strlen(str);
    int root=0;
    for(int i=0;i<len;i++)
    {
        int id=str[i]-'0';
        if(!tree[root][id]) return false;//没有节点就报错
        root=tree[root][id];//有继续下移
    }
    return true;
}
void init()//最后清空,节省时间
{
    for(int i=0;i<=tot;i++)
    {
       flagg[i]=false;
       for(int j=0;j<10;j++)
           tree[i][j]=0;
    }
   tot=0;//RE有可能是这里的问题
}

题目一:

统计难题

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 70397    Accepted Submission(s): 24279


Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
 

 

Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

注意:本题只有一组测试数据,处理到文件结束.
 

 

Output
对于每个提问,给出以该字符串为前缀的单词的数量.
 

 

Sample Input
banana band bee absolute acm ba b band abc
 

 

Sample Output
2 3 1 0
 
本宝宝会写字典树啦~~我发现我的学习就一句话:大宝天天见,效果看得见。我觉得有什么难的东西,没关系,天天看,逐渐就会觉得越来越简单
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
//initial
const int maxn=2e6+5;//why this number 只有加了const才能赋值给下面的数组
int tree[maxn][30];
int sum[maxn];
int tot;
char ss[maxn];
void insert_(char *str)
{
    int len=strlen(str);
    int root=0;
    for(int i=0;i<len;i++)
    {
        int id=str[i]-'a';
        if(!tree[root][id]) tree[root][id]=++tot;
        sum[tree[root][id]]++;
        root=tree[root][id];
    }
}
int find_(char *str)
{
    int len=strlen(str);
    int root=0;
    for(int i=0;i<len;i++)
    {
        int id=str[i]-'a';
        if(!tree[root][id]) return 0;
        root=tree[root][id];
    }
    return sum[root];
}
int main()
{
    while(gets(ss))
    {
        if(ss[0]=='\0') break;
        insert_(ss);
    }
    while(scanf("%s",ss)!=EOF)
    {
        printf("%d\n",find_(ss));
    }
    return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2019-08-05 17:03  黑暗尽头的超音速炬火  阅读(244)  评论(0编辑  收藏  举报