题目
思路:
语法题。
考虑对于 100%100\%100% 的数据,1≤a,b,c≤1091\le a,b,c \le 10^91≤a,b,c≤109,由此需要使用 long long。
正方形的面积为边长乘边长。
长方形的面积为长乘宽。
在输入并计算好面积后判断哪个大就可以了。
代码:
#include<bits/stdc++.h>using namespace std;#define LL long long#define itn int#define ull unsigned long longLL a,b,c;int main(){ cin>>a>>b>>c; a*=a; b*=c; if(a>b)cout<<"Alice"; else cout<<"Bob"; return 0;}
题目
思路:
首先依据常识写出每月的天数。
然后考虑怎么修改最小。
先考虑 MMM 的修改。
为了使修改次数最小我们应尽可能的在 MMM 这个月份不存在时在保证修改次数最小的情况下将他修改成每月天数尽可能多的月份。
依据这个思路 MMM 的修改可以分为两种情况。
月份为 000,我们可以将 MMM 修改为 111,因为 111 月有 313131 天,且在月份为 000 时只用修改一次。
月份大于 121212 时,又可以分为两种情况:当 MMM 是十的倍数时,把月份修改成 101010,因为 101010 月有 313131 天,且当 MMM 是十的倍数时,月份日期的第二个字符一定是 000,由此只用修改一次;当 MMM 不是十的倍数时,又可以分情况,当第二个字符也就是个位为 111 或 222 时,实际上是可以修改第一个字符为 111,但是要依据上面的思想“这个月份不存在时将他修改成每月天数尽可能多的月份”由此当月份为 111111 时修改成 111 月更优,因为 111111 月有 303030 天而 111 月有 313131 天并且都只要修改一次,对于个位不为 111 ...
前言
本文章因为在代码块里使用了 + 可能会出现缩进问题,复制后请检查,有疑问评论区提出。
预览效果
预览效果见本博客统计页面,点击跳转。
实现
1. 新建 charts 页面
可以 Git Bash 里使用 hexo new page charts 命令创建。
2. 引用 echarts.min.js
推荐保存到自己的博客里,文件内容。
以 anzhiyu 主题为例,在主题配置文件的 inject 引入 echarts.min.js。
inject: head: # 自定义css+ - <script src="/js/custom/echarts.min.js"></script>
3. 添加文章统计代码
打开你正在使用的主题目录如 [Blogroot]\themes\anzhiyu,进去后再进入 \scripts\helpers\ 目录。
在此目录新建 charts.js 文件,文件内容如下:
// charts.jsconst cheerio = require('cheerio')co ...
思路:
从一个点出发前往其它点,要求必须到达点的强度严格小于我们的强度的 1X\dfrac{1}{X}X1 倍,每次都可以从我们走过的地方形成的多边形的边上向没有到过的地方。
考虑 bfs。
与 bfs 模版不同的地方就在于每次都可以从我们走过的地方形成的多边形的边上向没有到过的地方,由此可以使用堆进行处理,每次把在边的旁边的点放进堆,每次取力量最小的点走。
如果这时要走到点的强度已经不严格小于现在的强度的 1X\dfrac{1}{X}X1 倍了,那么可以直接输出现在的值,然后结束程序。
可以这样的原因是我们采用了堆并且每次取的的最小强度,那么现在最小强度已经不严格小于现在的强度的 1X\dfrac{1}{X}X1 倍了,后面的强度只会大于或等于最小强度,所以也会是相同的结果,所以可以直接结束。
代码:
#include<bits/stdc++.h>using namespace std;#define LL long long#define itn int#define ull unsigned long longint H,W,p,q,x;LL s[510] ...
题意:
有多组数据。
给出 nnn 个字符串和 kkk 个规则,求每个规则可以组成的所有密码。
在规则中 # 表示的是一个给出的字符串,0 表示的是 000 到 999 中的一个数字。
思路:
深度优先搜索。
深度优先搜索函数传入两个量 nownownow 和 ansansans。
其中 nownownow 表示的是现在是规则里下标为 now+1now+1now+1 字符,ansansans 表示现在搜索到的答案。
当规则里下标为 now+1now+1now+1 字符为 # 时,遍历给出的字符串,对于每一个给出的字符串都放在 ansansans 后进行一次 dfs,注意不能影响后面的操作,如当遍历的是第 iii 个给出的字符串时,不能影响第 i+1i+1i+1 及其之后的操作。
当规则里下标为 now+1now+1now+1 字符为 0 时,把 000 到 999 按顺序放一次,同样不能影响后面的操作。
具体的代码为:
if(r[now]=='#'){// 是一个给出的字符串 for(int i=1;i<=n;i++){ d ...
思路:
一个数若要恰好有九个约数,它必须是以下两种形式之一:
p8p^8p8,其中 ppp 是一个质数。
p2⋅q2p^2 \cdot q^2p2⋅q2,其中 ppp 和 qqq 是不同的质数。
为什么是这两种形式,原因如下。
一个数的约数个数可以通过其质因数分解来确定。假设有一个正整数 nnn,它的质因数分解为:
n=p1e1⋅p2e2⋅…⋅pkekn = p_1^{e_1} \cdot p_2^{e_2} \cdot \ldots \cdot p_k^{e_k}
n=p1e1⋅p2e2⋅…⋅pkek
其中 p1,p2,…,pkp_1, p_2, \ldots, p_kp1,p2,…,pk 是不同的质数,而 e1,e2,…,eke_1, e_2, \ldots, e_ke1,e2,…,ek 是这些质数在 nnn 的质因数分解中的指数。
根据约数个数定理,nnn 的约数个数 d(n)d(n)d(n) 可以通过下面的公式计算得出:
d(n)=(e1+1)(e2+1)…(ek+1)d(n) = (e_1 + 1)(e_2 + 1)\dots(e_k + 1 ...
洛谷题解
未读
思路:
多源 bfs。
把每一个加湿器看做一个起点,求他们走 DDD 步最多可以走到几个格子。
对每一个加湿器的坐标进行 bfs。
bfs 模版里的标记数组要修改成 int 类型,并且标记的是到达这个位置的最小步数。
如果到达这个点时的步数小于标记的步数,才可以继续往下搜,因为只有还可以走的步数大于原本可以走的步数,才有可能走到更多的点,否则走到的点只会是走过的点。
其余的就是模版了。
代码:
#include<bits/stdc++.h>using namespace std;#define LL long long#define itn int#define ull unsigned long longchar s[1100][1100];int H,W,D;int bj[1100][1100];struct node{ int x,y,step;};void bfs(int x,int y){ queue<node>dl; dl.push({x,y,0}); while(dl.empty()==0)& ...
思路:
先考虑用队列和结构体进行模拟。
把输入的那个数的 ididid 和值一起放进队列,然后照着题目模拟就可以得出代码。
struct node{ int id; int num;};queue<node>dl,d;int main(){ cin>>n; while(n--){ cin>>op; if(op==1){ int x;cin>>x; dl.push({++i,x}); } else if(op==2){ cout<<dl.front().id<<" "; dl.pop(); } else if(op==3){ queue<node>d; int id=0; int maxx=-5; int cnt=0; while(dl.empty()==0){ node tamp=dl.front(); ...
题目传送门。
思路:
题目要求求出所有的方案,考虑 dfs 找出每个方案。
利用深度优先搜索找出所有方案,遇到可能方案时存下来,并使我们用来记录一共有几个可能结果的变量加一,最后输出有几种可能和所有可能的方案。
注意 dfs 里要按从小到大的顺序搜。
代码:
#include<bits/stdc++.h>using namespace std;#define LL long long#define itn int#define ull unsigned long longint n,m;int ans[15],cnt;vector<int>anss;void print(){ cnt++; for(int i=1;i<=n;i++){ anss.push_back(ans[i]); }// anss+="\n"; return ;}void dfs(int now,int v){// cout<<v if(now==n+1){ print();return ...
本文章操作均在 windows 操作系统下进行。
friend-circle-lite 朋友圈作者教程。
效果见本博客朋友圈。
搭建
1. fork 项目
进入此链接并 fork 本项目,fork 默认的就可以了,不用修改。
2. 修改 conf.yaml
在仓库里打开 conf.yaml 文件,点击 edit this file(像笔的图标),然后把
spider_settings: enable: true json_url: "https://blog.liushen.fun/friend.json" article_count: 5 merge_result: enable: false merge_json_url: "https://fc.liushen.fun"
里的 json_url 后的双引号里的链接改成你朋友圈的 json 的链接(下面会讲怎么获取)。
3. 设置 action
在项目里点击 Actions,然后点击绿色的按钮,之后进入 Friend Circle Lite,点 Enable wo ...