阿毛の次元

Amaok – 修合无人见,存心有天知。

GCD的几种实现方法

最简单的gcd算法:

int gcd(int x, int y)
{
     if(y == 0) return x;    
     if(x < y)      return gcd(y,x);    
     else        return gcd(y, x%y); 
} 

ACM中常用的gcd算法:

int gcd(int a, int b){ return a == 0 ? b : gcd(b % a, a); } 

经过优化的gcd算法(分成奇偶两种情况):

int gcd(int x,int y )
{
    if(x < y) return gcd(y,x);  // x>y
    if( y == 0) return x;  // if y=0, x is GCD 
    else
    {
         if( !(x%2) )
         {                 
           if( !(y%2) )  //x,y both even
               return 2*gcd(x >> 1, y >> 1);    
          else      // x is even, y is odd
               return gcd(x >> 1, y );  
         }
          else 
         {
           if( !(y%2) )  // x is  odd,  y is even
               return gcd(x, y >> 1);
           else       // x, y both odd
               return gcd(y,x-y); 
         }
    }
}

LG P1308 统计单词数

这本来是一道自动机的水题。但是可以用一个很巧妙的结构化解法,这样能大大缩减代码长度,并且降低了这道题的难度(让它更水)。

在这里贴一下代码,如下:

//定义头文件
#include <iostream>
#include <string>
//命名空间
using namespace std;
int main(){
    //定义两个字符串
    string a;
    string b;
    //用string库,调用getline, 直接读入一整行
    getline(cin,a);
    getline(cin,b);
    //转换大小写,可以都转换为大写,或者小写
    for (int i=0;i<a.length();++i){
        a[i]=tolower(a[i]);
    }
    for (int i=0;i<b.length();++i){
        b[i]=tolower(b[i]);
    }
    //因为连起来的不算,所以要在前后加几个空格,一定要是同样多的,同量减同量,等于同量
    a=' '+a+' ';
    b=' '+b+' ';
    //先看看会不会找不到,用a.find()和string::npos
    if (b.find(a)==string::npos){
        cout<<-1<<endl;
    }
    //如果找得到
    else {
        int alpha=b.find(a);
        int beta=b.find(a),s=0;//计数器初始化为0
        while (beta!=string::npos){
            ++s;//计数器
            beta=b.find(a,beta+1);
        }
        cout<<s<<" "<<alpha<<endl;//输出第一个和总共有几个
    }
    //函数返回值为0,结束整个程序
    return 0;
}

 

ACM-ICPC Asia Qingdao Regional Contest, Online

前言:

昨天参加了一波青岛赛区的ACM网络赛,很快乐的水了一下午,感觉自己一直不在状态。

只做出来五道题,C题思路有问题,WA了几次,超时了几次,罚时罚到爆炸。

简单记录一下五道题的思路和代码。

READ MORE →

sshd连接修复笔记

前言:阿毛这个博客服务器的sshd从几个月前就出现问题,命令只能通过管理控制台自带的SVN去执行,并且是osx自带的ssh和windows的xshell都连不上。这就让人很难受了。

查了很多资料,但是鄙人实在是太菜了,一直没找到是哪里出的问题,重启也重启了,补包也补包了,重装也重装了,甚至还自己写了几个脚本想强行启动,但始终是不行。

所以阿毛就需要找一个解决方案,因为本身就是一个linux小白,加上懒,所以一开始是想通过提交工单解决这个问题的,但是体验很一般(手动掰掰),搁置了很长时间,直到今天才修复。


READ MORE →

大桥施工笔记

鉴于某些不可描述的原因,科学上网的路越来越窄,笔者不得不自己搭桥。

为了以防记忆丧失,无法正确使用大桥,便写下这篇笔记。


SR部署脚本(CentOS6/Debian6/Ubuntu14 ):

yum -y install wget

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh &amp;&amp; chmod +x ssr.sh &amp;&amp; bash ssr.sh

备用:

yum -y install wget

wget -N --no-check-certificate https://softs.fun/Bash/ssr.sh &amp;&amp; chmod +x ssr.sh &amp;&amp; bash ssr.sh

READ MORE →

开发计划

手头的开发计划(坑)有两个,简单做一下记录。

READ MORE →

个人笔电&台式机计划

开始对生产力有刚需了,笔记本和台式机都准备换新。结合个人的发展计划,笔记本应该在最近入手。台式机会隔一段时间,至少大学以后再说。下面是个人计划中笔电和台式机的PlanA和B。仅做备忘。

READ MORE →

网站折腾记

从保定回来以后,就马不停蹄的做这个网站。

本来准备复活已经积灰的妹Blog,结果我的新浪云早就因为拖欠续费凉凉了。翻箱倒柜之前的数据备份也找不到了,很是心累,于是才有了推翻重做的打算。

在Hostker和Aliyun两家服务商之间犹豫了很久,最终选择了性价比较高的Hostker,其实最主要的是这家的UI做的太萌了。

服务器各方面都很满意,就是官方限制SSR有点难受。当然了,政策优先,毕竟不能跟官方对着干。

多年来一直使用WindowsServer,这是第一次实际上手Linux的服务器。不得不说,Linux的确是运行效率高,少了很多杂七杂八的进程,更适合做服务器。

我从16年信竞退役以后就没怎么培养过自己的前端技术,很明显感觉到现在手生了不少。技术要慢慢练,争取4年后能在圈内分得一点小小位置。

15年之前有一个ihtml.org的域名,我把所有的作品都放在里面了。当时的服务器是童老板提供的一台香港的VPS,配置很高,用着也很满意。但自己手残给整个网站上了个加密应用,只有随机生成的一把秘钥。果不其然,我找不到秘钥了,所有的作品也都凉凉了。当时有一些我现在觉得还能惊艳到自己的作品,我准备尽量的搜集。所以从今天开始,我会把我能找到的完整或者接近完整的作品逐一放在实验室里,不接受对当时作品的任何批评,请诸君静言慢赏。

接触互联网开发已经快5年了,回头看看过去,还是挺感慨的。一路高歌,无人相伴,但风雨无阻。

这次的博客折腾好以后就不再大动了,计划19.6前写一个完全独立开发的WP模版出来。

不知道是不是错觉,总感觉身边建站的人少了。这究竟是单纯的错觉还是事实呢?如果是事实,是因为市场饱和度的日益增长还是因为多家互联网平台的完善化呢?

我的博客主要当作开发日记用,当然里面也会发一发日常,po一手照片,多愁善感个一两句什么的。应该会发表一些系列的小说或者杂文什么的,也会发表一些个人的观点。综上所述:这就是个普通的博客。

没什么对访问量的需求,甚至不希望有访客。感觉写的很多东西是偏向私密的,而且访客越少对服务器的需求就越小,这毕竟不是一个商业化的网络应用。

如果你恰巧来到了我这里,对某些文字或者图像产生了兴趣,如果你需要转载,请评论告诉我一声;如果嫌麻烦,转载后请留原文链接。

修合无人见,存心有天知。