<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cloudy_happy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cloudy_happy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cloudy_happy]]></copyright><item><title><![CDATA[Handler源码分析]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/108153839</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/108153839</guid><author>cloudy_happy</author><pubDate>Fri, 21 Aug 2020 22:27:25 +0800</pubDate><description><![CDATA[什么是Handler

Handler是Android SDK来处理异步消息的核心类。用来结合线程的消息队列来发送、处理“Message对象”和“Runnable对象”的工具。每一个Handler实例之后会关联一个线程和该线程的消息队列。当你创建一个Handler的时候，从这时开始，它就会自动关联到所在的线程/消息队列，然后它就会陆续把Message/Runnalbe分发到消息队列，并在它们出队的时候处理掉。

Handler的基本用法
private Handler handler = new Handl]]></description><category></category></item><item><title><![CDATA[Android中View的继承关系图]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/107772981</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/107772981</guid><author>cloudy_happy</author><pubDate>Mon, 03 Aug 2020 20:41:33 +0800</pubDate><description><![CDATA[Window 类
　　位于 /frameworks/base/core/java/android/view/Window.java。该类是一个抽象类，提供了绘制窗口的一组通用API。可以将之理解为一个载体，各种View在这个载体上显示。
PhoneWindow类
　　位于/frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindow.java。该类继承于Window类，是Window类的具体实现，即我们可以通过该类..]]></description><category></category></item><item><title><![CDATA[Mac终端常用命令学习笔记]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/107664563</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/107664563</guid><author>cloudy_happy</author><pubDate>Thu, 30 Jul 2020 10:11:04 +0800</pubDate><description><![CDATA[文件目录：
" / "  ：根目录
" ~ " ：用户主目录的缩写。例如当前用户为hello，那么" ~ "展开来就是：/Users/hello
" . "  ：当前目录
“…”   ：父目录
#### 列出文件

ls 参数 目录名

]]></description><category></category></item><item><title><![CDATA[macOS下Android Studio我的常用快捷键记录]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/107613504</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/107613504</guid><author>cloudy_happy</author><pubDate>Mon, 27 Jul 2020 15:53:49 +0800</pubDate><description><![CDATA[command + 点击 查看源码（查看方法的实现等）
command + option + ←\leftarrow←(左箭头) 回退到上次查看的位置

]]></description><category></category></item><item><title><![CDATA[安卓利用RecyclerView写一个卡片依次左右排列的页面]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/107306696</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/107306696</guid><author>cloudy_happy</author><pubDate>Sun, 12 Jul 2020 22:59:18 +0800</pubDate><description><![CDATA[这是学习完《第一行代码》前三章后做的一个练习

效果如下所示：

接下来是代码：
首先是主布局
利用recyclerview
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_paren]]></description><category></category></item><item><title><![CDATA[Java学习笔记]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/106963721</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/106963721</guid><author>cloudy_happy</author><pubDate>Sat, 27 Jun 2020 21:46:44 +0800</pubDate><description><![CDATA[未懂
static的作用
finalize()方法
6.初始化和清理
this
在构造器中调用构造器可以用this关键字，通常当你说 this，意味着"这个对象"或"当前对象"，它本身生成对当前对象的引用。
import java.util.*;
class Flower {
    int petalCount = 0;
    String s = "initial value";

    Flower(int petals) {
        petalCount = petals;
      ]]></description><category></category></item><item><title><![CDATA[牛客练习赛51 A B C]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/100656491</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/100656491</guid><author>cloudy_happy</author><pubDate>Mon, 09 Sep 2019 11:34:32 +0800</pubDate><description><![CDATA[文章目录ABC
A
前后缀维护字符串中b左边a的个数和b的个数，对于每个b，它能构成的的abc的个数即为它前面a的个数乘以它后面c的个数
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
typedef pair&lt;int,int&gt; pii;
str...]]></description><category></category></item><item><title><![CDATA[2019icpc南京网赛H]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/100564721</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/100564721</guid><author>cloudy_happy</author><pubDate>Thu, 05 Sep 2019 18:44:37 +0800</pubDate><description><![CDATA[题意：
给定一个n个点m条边的有向含负权值边并且无自环图，构造6条给定边求这六条边的权值最小使得加上每条边后图中不含负环。ps：后面的边不影响前面的，每条构造好的边要加入图中
思路：
数据范围较小，直接暴力跑6次spfa即可
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
#define inf 0x3...]]></description><category></category></item><item><title><![CDATA[牛客练习赛50  A B C]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/100051134</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/100051134</guid><author>cloudy_happy</author><pubDate>Sat, 24 Aug 2019 11:56:34 +0800</pubDate><description><![CDATA[文章目录AB
A
签到
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
char vis[200];
int main()
{
    ios::sync_with_stdio(false);
    string s;
    int n;
    cin&gt;&gt;n&gt;&gt;s;
   ...]]></description><category></category></item><item><title><![CDATA[HPU 积分赛]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99705133</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99705133</guid><author>cloudy_happy</author><pubDate>Sun, 18 Aug 2019 15:51:20 +0800</pubDate><description><![CDATA[文章目录ABCEFGHIJKL
A
处理出最多可划分的序列个数，如果是奇数就输出“Yes”，否则输出“No”
其实，只要偶数不在两边并且序列个数为奇就一定是“Yes”，否则就是“No”，不过当时没想到,这里就给出当时写的代码吧
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
int a[110];
in...]]></description><category></category></item><item><title><![CDATA[杭电多校Day7 1001 A + B = C]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99645090</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99645090</guid><author>cloudy_happy</author><pubDate>Thu, 15 Aug 2019 17:22:07 +0800</pubDate><description><![CDATA[思路
我们让a或b和c的长度相同，然后c减去a或b，那么得到的就一定包含b或a，hash检测一下就好了
比如a=12223     b=1112222    c=123342222
那么我们就可以变成a=122230000       b=11122222       c=123342222
这样 c-a=11122222显然是包含b的，不过我们要先去掉abc的后导零
#include&lt;bi...]]></description><category></category></item><item><title><![CDATA[Kattis - candydistribution 扩展欧几里得]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99585820</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99585820</guid><author>cloudy_happy</author><pubDate>Wed, 14 Aug 2019 17:05:29 +0800</pubDate><description><![CDATA[思路：
根据题意，我们可以推出来 Cans + 1 = Kx
易知 Kx - Cans = 1，即ax + by = gcd(a,b)
所以对于gcd(K , C) == 1，我们用扩展欧几里得求出一个ans，否则输出impossible
但是要注意求出的ans是负数的话要通过加K变为正的，然后对于C = 1 的情况要输出K+1
#include&lt;bits/stdc++.h&gt;
usin...]]></description><category></category></item><item><title><![CDATA[杭电多校Day3 1006 Fansblog]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99571628</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99571628</guid><author>cloudy_happy</author><pubDate>Wed, 14 Aug 2019 16:47:55 +0800</pubDate><description><![CDATA[思路：
说一下题意，就是问一个质数p，求刚好不大于p的质数q的阶乘对p取模的值
首先我们要知道威尔逊定理：对于一个质数p，(p - 1) ! % p = p - 1
于是，我们可以得出
q ! * (q+1) * (q + 2) * … * (p - 2) * (p - 1) % p  = p-1
现在答案就很明显了，ans = (p - 1) * inv(p - 1) * inv(p - 2) ...]]></description><category></category></item><item><title><![CDATA[基础算法模板（Markdown重写方便查询）]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99547704</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99547704</guid><author>cloudy_happy</author><pubDate>Wed, 14 Aug 2019 10:54:38 +0800</pubDate><description><![CDATA[__int128
读入输出
inline __int128 read()
{
   int X=0,w=0; char ch=0;
   while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
   while(isdigit(ch)) X=(X&lt;&lt;3)+(X&lt;&lt;1)+(ch^48),ch=getchar();
   return w?...]]></description><category></category></item><item><title><![CDATA[zzulioj Contest1398 - hpu2019暑期选拔赛]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99472917</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99472917</guid><author>cloudy_happy</author><pubDate>Tue, 13 Aug 2019 20:39:22 +0800</pubDate><description><![CDATA[zzulioj Contest1398 - hpu2019暑期选拔赛A思路：代码：BCDEFGHI新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLow...]]></description><category></category></item><item><title><![CDATA[杭电多校Day4 1001]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99288665</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99288665</guid><author>cloudy_happy</author><pubDate>Mon, 12 Aug 2019 10:12:57 +0800</pubDate><description><![CDATA[题意：

用1~n建一个MST使得他的总权值最小，输出 n-1条边和总权值，每条边的权值等于点的异或，输出总权值和边，边的输出格式占一行，对于第 i个输出的数 ai ,代表i和ai之间有一条边

思路：

考虑异或性质，对于一个偶数点，我们让它和1建边则权值为0；对于一个奇数点，我们让他和它二进制表示的从低位往高位出现的第一个0变为1，低位全变0，比如5表示为101，那么我们让5与2（...]]></description><category></category></item><item><title><![CDATA[杭电多校Day6 1008 && 1012]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99285800</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99285800</guid><author>cloudy_happy</author><pubDate>Mon, 12 Aug 2019 09:22:52 +0800</pubDate><description><![CDATA[1008：

题意：对于给定的k和m，找到最小的使得 ( f (n , m) - n ) ^ n == k的n，如果不存在，则输出-1， f (n , m)即比 n 大的第m个数使gcd( n ，x） == 1的数x

思路：根据质数密度分布可以得知，k上下的100个使得 gcd(x ，k） == 1的数也就1000左右，打表可得只有不到800，而n一定就在k上下，所以我们只需要把阈值设为800...]]></description><category></category></item><item><title><![CDATA[AtCoder Beginner Contest 137 A B C D]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/99284945</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/99284945</guid><author>cloudy_happy</author><pubDate>Mon, 12 Aug 2019 08:57:42 +0800</pubDate><description><![CDATA[A:max(max(a-b,a+b),a*b)


#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
int main()
{
    ios::sync_with_stdio(false);
    int a,b,c;
    cin&gt;&gt;a&gt;&gt;b;
    cout&lt;&...]]></description><category></category></item><item><title><![CDATA[2019杭电多校Day5 1006]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/98517133</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/98517133</guid><author>cloudy_happy</author><pubDate>Mon, 05 Aug 2019 20:41:39 +0800</pubDate><description><![CDATA[思路：

扩展kmp，预处理出nxt数组相加，对于全部匹配的前缀减1就行了

代码：


#include&lt;bits/stdc++.h&gt;
using namespace std;
#define ll long long
const int maxn = 1e6 + 10;
ll nxt[maxn],ans;
void getnext(string t)
{
    memset(nx...]]></description><category></category></item><item><title><![CDATA[C++如何手动开O2优化]]></title><link>https://blog.youkuaiyun.com/cloudy_happy/article/details/97893040</link><guid>https://blog.youkuaiyun.com/cloudy_happy/article/details/97893040</guid><author>cloudy_happy</author><pubDate>Wed, 31 Jul 2019 10:23:00 +0800</pubDate><description><![CDATA[C++手动开O2优化可以是编译器编译效率提高从而减少运行时间达到优化效果


#pragma GCC optimize(2)


]]></description><category></category></item></channel></rss>