-->

儿时谜语记录

谜面

  • 地上一杆枪,走来走去不敢趟(tāng);
  • 青树青棵,就地盘窝,我又不是什么仙桃仙果,为什么踮着脚够(gòu)我


其他的等我想起来再更新


谜底

  • 苍耳草

最好的时代

这是最好的时代

这个时代充满了美好


物内人群热闹,屋外鸟语花香

家庭美满幸福,邻里友好互助

亲戚相互祝福,朋友常常沟通

事业蒸蒸日上,经济欣欣向荣


当有一天下起了雪,也没有那该死的脚印去践踏

这是我们盼望中的纯洁


我们有幸见证伟大的时代

让我们一起赞美,这最美好的世界


我开心的回头找你

你为何在墙角哭泣?

知识的边界

 我是一个普通人,能观察到的也是普通人。

小孩子的快乐各不相同,学习却是通用的苦恼。

这里我突然想到一个问题,人所能达到的知识的边界在哪里?

如果一个智商正常的人,从出生开始学习,

而且一直对某一个领域进行研究,如此不断。


直至小孩子从出生到死亡也无法学习完关于这个领域的全部知识的时候

是不是边界就出现了?


如果是这样的话,知识的范围就好像一个限定范围的高斯球。

阶段性胜利

最近在找实习,感觉自己没有特别的优势,终于腾讯到了hr面还因为非全被打了回来。

我有时候就想,是不是我的运气太差,考研报考的时候哪一个选择变化的话都能考上全日制。

我又觉得这是上天的安排。


最后还是回归理性,是我准备的还不够,觉得差不多够了的时候就有些松懈,我文科和理科发展的也差距有些大。

理性告诉我,我应该更努力的学。

懒惰也催促我快些玩耍,放松。


我偶尔回忆经历过的一些小小的“成功”与“失败”。

我发现成功不过几年,失败也并不绝对。

现在有些焦虑,焦虑看不到后面的路。

虽然我知道,后面总有路。


全都是阶段性胜利和失败。

胜利的欢呼能振奋人心。

失败的沮丧别打垮你的信心。


祝你幸福,人们。

n的阶乘在m进制下末尾有多少零

 题目来源于CSDN,只是改编为Java版本

推荐看看简单版本:n的阶乘末尾有多少零


代码如下:

import java.util.Arrays;
import java.util.Scanner;

public class Main {

// 寻找的质数的范围,即 [2, maxn]
static int maxn = 10010;
// 存所有质数
static int[] prime;
static boolean[] isPrime;
// a存所求数的所有质因子
static int[] a;
// b存每个质因子的个数
static int[] b;
// num是maxn范围内素数的个数
static int num, cnt;

public static void init(){
a = new int[maxn+1];
b = new int[maxn+1];
prime = new int[maxn+1];
isPrime = new boolean[maxn+1];
num = 0;cnt = 0;

// 这里是寻找 maxn 以内的质数
Arrays.fill(isPrime, true);
for (int i = 2; i <= maxn; i++) {
if(isPrime[i]){
prime[num++] = i;
for (int j = i*i; j <= maxn; j+=i) {
isPrime[j] = false;
}
}
}
}

// 找到所有可疑的质数
private static void decom(int m){
cnt = 0;
for (int i = 0; i < num; i++) {
if(prime[i] > m) break;
int d = m;
while (d%prime[i] == 0){
a[cnt] = prime[i];
b[cnt]++;
d /= prime[i];
}
if(d < m)
cnt++;
}
}

// 计算 n! 里面有多少 x,比如8!里面有7个2
private static long cal(long n, long x){
if(n == 0 || n == 1){
return 0;
}
long answer = 0;
while(n != 0){
answer += n/x;
n /= x;
}
return answer;
}

private static long solve(long n, int m){
decom(m);
long answer = Long.MAX_VALUE;
for (int i = 0; i < cnt; i++) {
long t = cal(n, a[i]);
answer = Math.min(answer, t/b[i]);
}
return answer;
}

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()){
String[] tmp = in.nextLine().split(" ");
long n = Long.parseLong(tmp[0]);
int m = Integer.parseInt(tmp[1]);
init();
System.out.println(solve(n,m));
}
}
}

携程提前批笔试2021

一、两名字的缘分值

题目 :缘分值定义:两个名字(字符串)通过删除字符,使得留下的子串一直,所删除的ASCII之和最小值为两个名字的缘分值。
输入描述:输入两行名字,上下两行对应位置名字进行缘分值计算。
2<=每个名字的长度<=10,
2<=每个名字的<=20
输出描述:输出总缘分值。

样例输入:
Zhang San
Zhan Ai

样例输出:
563

说明
第一组名字,删除‘g’使其相等 ASCII =103,第二组都不同全要删掉,ASCII=290+170=460,总操作数103+460=563。

分析
1.该题有些误导,其主要过程是如果A的名字和B的名字的每个字的拼音分别相比较,而且区分大小写。
2.动态规划计算最长相同子序列,只是求完之后存下相同的char和出现频率
3.结果相加
ac 100%


import java.util.HashMap;
import java.util.Scanner;

public class Main {

    /**
     * 获取字符串的全部asc值
     * @param str 输入
     * @return 该字符串的asc值
     */
    static int getStrAsc(String str){
        int answer = 0;
        int len = str.length();
        for(int i = 0; i < len; i++){
            answer += (int)str.charAt(i);
        }
        return answer;
    }

    /**
     * 获取 strs 位于[start, end)之间的字符串asc值之和
     * @param strs 字符串数组
     * @param start 包含
     * @param end 不包含
     * @return 区间内asc之和
     */
    static int getStrsAsc(String[] strs, int start, int end){
        int answer = 0;
        for(int i = start; i < end; i++){
            answer += getStrAsc(strs[i]);
        }
        return answer;
    }

    /**
     * 主要计算函数
     * @param name1
     * @param name2
     * @return
     */
    static int calcSimilarity(String name1, String name2) {
        String[] name1s = name1.split(" ");
        String[] name2s = name2.split(" ");
        int len1 = name1s.length;
        int len2 = name2s.length;

        int answer = 0;
        // 算一下多出去的那部分字符串的asc值
        if(len2 > len1){
            answer += getStrsAsc(name2s, len1, len2);
        }else if(len1 > len2){
            answer += getStrsAsc(name1s, len2, len1);
        }
        int len = Math.min(len1, len2);

        for(int i = 0; i < len; i++){
            // 获得最长公共子序列的map,包含字符和出现次数
            HashMap<Character, Integer> map = getMap(name1s[i], name2s[i]);
            answer += getStrAsc(name1s[i]);
            answer += getStrAsc(name2s[i]);
            // 加和之和减去两倍公共的就是答案了
            for(Character item : map.keySet()){
                answer = answer - 2 * (int)item * map.get(item);
            }
        }

        return answer;
    }

    /**
     * 获得name1和name2的最长公共子序列的map,包含字符和次数
     * @param name1
     * @param name2
     * @return map
     */
    static HashMap<Character, Integer> getMap(String name1, String name2) {
        HashMap<Character, Integer> answer = new HashMap<>();

        int len1 = name1.length();
        int len2 = name2.length();
        int[][] dp = new int[len1+1][len2+1];
        // 记录这个最小值从哪里来,为了反向寻找
        int[][] from = new int[len1+1][len2+1];

        for(int i = 1; i <= len1; i++){
            for (int j = 1; j <= len2; j++) {
                if(name1.charAt(i-1) == name2.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1] + 1;
                    // 来自 i-1,j-1
                    from[i][j] = 0;
                }else if(dp[i-1][j] > dp[i][j-1]){
                    dp[i][j] = dp[i-1][j];
                    // 来自 i-1,j
                    from[i][j] = 1;
                }else{
                    dp[i][j] = dp[i][j-1];
                    // 来自 i,j-1
                    from[i][j] = 2;
                }
            }
        }
        
        int max = dp[len1][len2];
        // 反向寻找
        while(max > 0){
            int nexti = len1;
            int nextj = len2;
            // 下面的判断是找该节点来自哪里
            if(from[len1][len2] == 0){
                nexti--;
                nextj--;
            }else if(from[len1][len2] == 1){
                nexti--;
            }else {
                nextj--;
            }

            // 相同说明没贡献,找到第一个对最长序列有贡献的点就是最后一个相同的点
            if(dp[len1][len2] == dp[nexti][nextj]){
                len1 = nexti;
                len2 = nextj;
            }else {
                answer.put(name1.charAt(len1-1), answer.getOrDefault(name1.charAt(len1-1), 0)+1);
                len1 = nexti;
                len2 = nextj;
                max--;
            }
        }

        return answer;
    }


    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String name1 = in.nextLine();
            String name2 = in.nextLine();

            int sum = calcSimilarity(name1, name2);
            System.out.println(sum);
        }
    }
}



选择性忘记

    不知道你有没有同感,当你回忆少年时期遇到的可怕事情,只记得事情发生的前后,那件让你疼痛的事情的具体事情却怎么也记不清楚了。
    有一件事情记得很清楚,在我比较小的时候,我们家里晚上在院子里乘凉,因为我们院子有枣树,所以时常会有“洋辣子”掉在地上,可能每个地方给它的称呼不一样,当然我们这里也并不叫这个,但是它带来的恐惧应该是相同的,这个小东西只在有汗毛的皮肤上有效,在手心上放一个其实是不会有事的。
    不过我那会还不知道这些,或者说我知道,但是晚上比较黑了,我没看的很清楚。
    我看到地上有一个蛹一样的东西,长得很是奇怪,现在都记得很清楚,那个东西表面呈椭圆形状,表面很粗糙,沿着圆的方向有一圈圈的纹路,有点像木头。
    我对这个玩意很好奇,就拿在手上仔细观察,感觉我从来没有见过,越来越好奇,后来我已经不知道为什么了,我居然会:

        我把这个玩意当作肥皂一样在我自己身上涂来涂去!!!  接下来当天晚上后面发生了什么我已经完全记不起来了。 我的记忆接下来记得的就是第二天早上我的身上涂满了牙膏在家里的水井旁边玩。第二天其实还是有些疼的。

        据我爸说那天晚上我突然大哭,然后带着我去看医生,晚上也哭。不过我是怎样都想不起来了。




这些最痛苦的时候虽然忘记了,但是这种恐惧是一直存在的,删掉了一部分记忆不可能删掉每个人的记录,事情发生了总有人记得,我无法张口同别人讲述,别人同我也一样。


闭嘴!

春雨 --- by 哲

    春雨

昨夜一场春雨,
桃红柳绿,
蝴蝶吸食着甘甜的雨露,
鸟儿在枝头唱起乐曲。

我迈着轻快的步伐,
我享受着温暖的阳光,
享受着雨后清新的空气,
感谢昨夜一场春雨带来的快乐与美好。

无需root隔离手机的垃圾软件(自启软件)

1.为什么有这个需求?

首先么,你有没有一些你必须安装但是又不想要安装的软件?
那,如果有的话,你怎么处理呢?

2.这篇帖子之前我是怎么处理的?

就在前些天之前我就安装在我的手机里咯,必须用能怎么样咯。。。

3.帖子的目标。

    让你的手机有一个专门的空间来安装这些app,利用的原理是安卓work空间,这个功能主要是给这种情景使用的:你是一个老板,你想让员工使用一些软件,但是又想控制一些软件的具体权限,比如chrome的某种权限,或者给员工的邮箱stmp地址自动配好。这样就可以很好的控制这些软件的权限了,等你的员工离职后你可以删掉他的work空间内容。
    如果你想自己建一个demo公司,使用本来的功能,你可以访问这里来创建一个demo。不过呢,这之前你要保证你的网络(注意,是你的网络,因为work空间是独立的,网络也无法使用你自己的某些上网软件)可以访问Google。

4.正题

该如何娱乐?

就我自己来说,在我收到的教育里面,我经常会听到“劳逸结合”。
但是我又没有被教育如何去安排娱乐的时间。
我不确定我是否娱乐过度了,或者这本应是属于我的娱乐时间。

在娱乐方面,我自己感觉算是花费比较少的。
也几乎不会为游戏花钱。

给你的blogger加上PWA

什么是PWA?
不解释了,因为我也没有很明白,就是很厉害就行了。

先看效果:

这就是当你的网站加了pwa之后用chrome添加到桌面,再打开之后的样子,完全看不出这是网页了。

一旦关住自己,就会不思进取

很久之前写的这个标题
当时我发现我确实是这样的:
当我减少与其他人的沟通的时候
我不知道除了现在做的事情之外还能做些什么

我会被自己的思想局限住
接触的少了
知道的也少了
当然,不知道的也少了

分享一些图书

这些图书全部收集于网络,如果你觉得本篇文章侵犯到了你,请及时与我联系。
如果您觉得这些书还不错,那我建议您支持正版。

这些书包含如下:
Python编程:从入门到实践.pdf
SpringBoot实战(第4版).pdf
Tensorflow 实战Google深度学习框架.pdf

一根芦苇

一根芦苇,一群被动的芦苇。
一位收割者,一群镰刀操纵者。
芦苇是必要的,思考是多余的。
有些时候,芦苇也不是必要的,不是吗?

身旁的,成片的,芦苇,随着风声摆动着。
可是风呢?我明明到了风声,远处的榕树一动不动。
我亦慢慢摆动,直到我以为我感觉到了风。

风,风,好大的风。
身旁呼啸着,每个人呼喊着。
这次我不打算加入了,尽管不自觉的对着口型。
却不敢发出声音。

风声越来越大,榕树却好像什么都没发生。
芦苇们疯狂的摆动着,欢呼着。
我望见不远处,收割者又走近了。

新的心态

  我已无法否认,这两年的新年我的心态已经发生了转变,我很不适应。
  很难,很难,很难开心起来了,心思重重,现实和理想中的情节也相差甚远。
  无论谁都很默契的保持着自己的风格不愿更改。
  我也不喜欢。

  感觉有些格格不入。

又是一个春

从有这个想法到现在大概有一年的时间了
我一直不愿意透露,因为我心有顾忌
离开公司时间不长
却感觉已经过了很久

我总是觉得自己不喜欢日复一日
但我越来越不喜欢变化
其实并非不不喜欢变化后的样子
只是害怕变化的过程

言听计从

现在觉得这个词能找到好多对应的例子了。
但我说的并不是由于对某个人产生了信任之后产生的信赖感 。
我现在工作的地方是一个私企,必然对于现在说的这种情况我也不知道其他企业会不会好得多。
工作了一段时间开始发现了一些问题,暂且记在这里。
我们大部分人 都是被一小部分人“管理”着,他们呢决定着你的工资,决定着你做什么工作还有你的劳动强度;
即便是他们根本没办法得出一个合适的结论,有时候感觉一些决定基本是错误的,毕竟一个人没办法得出完美的结论;
这是由于等级制度决定的,有些时刻你根本无法反驳甚至不敢反驳,这是一种强硬的要求,不需要其他多余的沟通;

被放大的无知

像是站在了雾蒙蒙的十字路口一样
不知道是工作的原因还是因为自己慢慢年纪增张,想的事情变得越来越多,总是有一种忙不过来的感觉。
我可能并没有那么擅长同时多任务的处理事情,搜索到脑袋里的东西也有些跟不上了一样感觉自己的无知被越来越大的放大了。
想象的那么美好,想想自己可以做很多事情,很多有意义的事情,把自己想的太厉害了,实际却不然。
发现自己欠缺的那个空洞想要完全补齐的话差的还是太多了。
越是向前,越是看到很多阻碍,看到了艰难,时不时的也会低头,真的不能这样了。
想说自己的时间不够用,或者我的时间管理方式还并不正确吧,希望后面会有所改善吧。

隐藏是最实用的解决办法咯?

无论是刻意观察还是偶然撇到,我们肯定看到过这样的情景
我们把一些杂乱的东西收拾到床底下,然后床头布放下之后就会完全遮挡住。
对,这就是我现在的状态,美其名曰合理利用空间,这可能是最合适的做法了。

我什么都做不了

越来越多的事情,越来越无能为力。
不能接受也不得不接受。
时间让我得到,也让我失去。
家人,健康,我不愿 意识到它的重要性。
回家,痛苦,谁能知道你的心。
隔床听着,喘息,咳嗽,假装习以为常。
想不到竟如此要强

特别说明

由于众所周知的原因,本博客以往文章的图片无法显示,请谅解。

标签

生活纪实 (192) 感想 (116) ingress (54) 软件 (49) 小诗 (35) 梦境 (28) 教程 (21) 科幻 (21) 体会 (20) 杭州 (11) blogger (5) wordpress (5) Google adsense (4) Google voice (3) Chrome (2) Tensorflow (1) 谷粉 (1)