A - 看我,看我,我最简单了

POJ - 2387

这道题是以前记录过的最短路板子题,然而我还是脑抽用Floyd交了一发

解题报告:https://www.cnblogs.com/RioTian/p/12879353.html

B - 我也很简单

HDU - 1061

快速幂,注意对 \(10\) 取模即可

// Author : RioTian
// Time : 20/11/05
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 10;
int _, n;
ll qpow(ll a, ll b) {
ll ans = 1;
a %= mod;
for (; b; a = a * a % mod, b >>= 1)
if (b & 1) ans = ans * a % mod;
return ans;
}
int main() {
// freopen("in.txt", "r", stdin);
// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> _;
while (_--) {
cin >> n;
cout << qpow(n, n) << endl;
}
return 0;
}

C - 我更简单了,一眼就可以看穿我

CodeForces - 450B

先说下规律吧

\[f1=x,f2=y,∀i(i≥2)fi=fi−1+fi+1
\]

我们可以转化递推式

\[f_{i+1}=f_{i}-f{i−1}\\即\ f_i=f_{i−1}−f_{i−2}
\]

此时可以先打个表推一下前面的答案。很容易发现是循环节为 \(6\) 的循环,这样的话直接推导前6位即可

(注意点:步步取模)

ll dp[20], n;
int main() {
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> dp[1] >> dp[2] >> n;
dp[1] = (dp[1] + mod) % mod;
dp[2] = (dp[2] + mod) % mod;
for (int i = 3; i <= 6; ++i) dp[i] = (dp[i - 1] - dp[i - 2] + mod) % mod;
dp[0] = dp[6];
cout << dp[n % 6];
}

然后再考虑正解:矩阵快速幂 (相关博客尚未发布)

\[由f_i=f_{i−1}−f_{i−2}\\对于n>=2\\\begin{pmatrix}f_n\\f_{n-1}\end{pmatrix} = \begin{pmatrix}1&-1\\1&0\end{pmatrix}=\begin{pmatrix}y\\x\end{pmatrix}
\]
// Author : RioTian
// Time : 20/11/05
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
const ll mod = 1e9 + 7;
ll x, y, n;
struct Matrix {
ll mat[3][3];
Matrix operator*(const Matrix &b) const {
Matrix ans;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
ans.mat[i][j] = 0;
for (int k = 0; k < 2; k++) {
ans.mat[i][j] =
(ans.mat[i][j] + mat[i][k] * b.mat[k][j] % mod + mod) %
mod;
}
}
}
return ans;
}
};
Matrix q_pow(Matrix a, ll b) {
Matrix ans;
memset(ans.mat, 0, sizeof(ans.mat));
for (int i = 0; i < 2; i++) {
ans.mat[i][i] = 1;
}
while (b) {
if (b & 1) ans = ans * a;
b >>= 1;
a = a * a;
}
return ans;
}
int main() {
scanf("%lld%lld", &x, &y);
scanf("%lld", &n);
if (n == 1) {
printf("%lld\n", (x % mod + mod) % mod);
return 0;
}
if (n == 2) {
printf("%lld\n", (y % mod + mod) % mod);
return 0;
}
Matrix ans;
ans.mat[0][0] = 1;
ans.mat[0][1] = -1;
ans.mat[1][0] = 1;
ans.mat[1][1] = 0;
ans = q_pow(ans, n - 2);
ll ret =
((ans.mat[0][0] * y % mod + ans.mat[0][1] * x % mod) % mod + mod) % mod;
printf("%lld\n", ret);
return 0;
}

D - 可以看我一下

POJ - 2421

为瞄又是以前做过的题

解题报告:https://www.cnblogs.com/RioTian/p/13380764.html#3constructing-roads

E - 我可以写

HDU - 2588

题意很容易理解,但也一下子误导我进入了一个误区,正确的思路应该是在 \(gcd(x,N)\geqslant M\) 改为 \(gcd(x/M,N/M) == 1\) ,\(\Rightarrow\) 求 不大于 \(N/M\)且 与其互质的 \(N/M\) 的个数 即求 \(ϕ(N/M)\)

// Author : RioTian
// Time : 20/11/05
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int _, n, m;
ll euler(ll x) {
ll res = x;
for (int i = 2; i * i <= x; i++)
if (x % i == 0) {
res = res / i * (i - 1);
while (x % i == 0) x /= i;
}
if (x > 1) res = res / x * (x - 1);
return res;
} int main() {
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> _;
while (_--) {
cin >> n >> m;
ll ans = 0;
for (ll i = 1; i * i <= n; i++) {
if (n % i == 0) { // i是n的因数
if (i >= m) ans += euler(n / i);
// i*(n/i)==n,判断i对应的另一个因数是否符合
if ((n / i) >= m && n / i != i) ans += euler(i);
}
}
cout << ans << endl;
}
return 0;
}

F - 我最正常了

HDU - 1597

直接去找是第几个序列,找到之后因为都是1~9循环,所以取余就能得到结果咧

// Author : RioTian
// Time : 20/11/05
#include <bits/stdc++.h>
using namespace std;
int t, b, n;
int main() {
//freopen("in.txt", "r", stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> t;
while (t--) {
cin >> b;
n = 1;
while (b > n) b -= n, n++;
if (b % 9 == 0)
cout << 9 << endl;
else
cout << b % 9 << endl;
}
}

G - 不要看我,我最难了,你们肯定不能写出来

计蒜客 - 31434

这道题想了很久(和题目名杠上了。。),最后还是放弃。

// Author : RioTian
// Time : 20/11/05
#include <bits/stdc++.h>
using namespace std;
#define ms(a, b) memset(a, b, sizeof a)
typedef long long ll;
const ll MOD = 998244353;
const int maxn = 2000 + 10;
int w, h, k;
ll sum[maxn][maxn];
int main() {
//这道题是文件读入,下面两句一定要加
freopen("racing.in", "r", stdin);
freopen("racing.out", "w", stdout); cin >> w >> h >> k;
ms(sum, 0);
sum[1][1] = 1;
for (int i = 1; i <= h; i++) {
for (int j = 1; j <= w; j++) {
if (i == 1 && j == 1) continue;
int L = max(0, i - k - 1), D = max(0, j - k - 1);
sum[i][j] =
2 * (sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1]) -
(sum[L][j] + sum[i][D] - sum[L][D]);
while (sum[i][j] < 0) sum[i][j] += MOD;
sum[i][j] %= MOD;
}
}
ll ans = sum[h][w] - sum[h - 1][w] - sum[h][w - 1] + sum[h - 1][w - 1];
while (ans < 0) ans += MOD;
ans %= MOD;
cout << ans << endl;
}

第17场-快乐AC赛的更多相关文章

  1. 2017.9.17校内noip模拟赛解题报告

    预计分数:100+60+60=220 实际分数:100+60+40=200 除了暴力什么都不会的我..... T1 2017.9.17巧克力棒(chocolate) 巧克力棒(chocolate)Ti ...

  2. 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解

    A. Picking&Dancing 有一列n个石子,两人交替取石子,每次只能取连续的两个,取走后,剩下的石子仍然排成1列.问最后剩下的石子数量是奇数还是偶数. 读懂题意就没什么好说的. #i ...

  3. 计蒜客-蒜场抽奖(AC自动机+状态压缩DP)

    题解:题意不再说了,题目很清楚的. 思路:因为N<=10,所以考虑状态压缩 AC自动机中 val[1<<i]: 表示第i个字符串.AC自动机中fail指针是指当前后缀在其他串里面所能 ...

  4. 【JZOJ4899】【NOIP2016提高A组集训第17场11.16】雪之国度

    题目描述 雪之国度有N座城市,依次编号为1到N,又有M条道路连接了其中的城市,每一条道路都连接了不同的2个城市,任何两座不同的城市之间可能不止一条道路.雪之女王赋予了每一座城市不同的能量,其中第i座城 ...

  5. 第七届ACM趣味程序设计竞赛第四场(正式赛) 题解

    Final Pan's prime numbers 题目连接: http://acm.uestc.edu.cn/#/problem/show/1272 题意 给你n,要求你在[4,n]范围内找到一个最 ...

  6. CDOJ 第七届ACM趣味程序设计竞赛第三场(正式赛) 题解

    宝贵资源 题目连接: http://acm.uestc.edu.cn/#/problem/show/1265 题意 平面上给n个点(n<=1000),要求找一个面积最小的正方形,将所有的点都囊括 ...

  7. PACM Team(牛客第三场多校赛+dp+卡内存+打印路径)

    题目链接(貌似未报名的不能进去):https://www.nowcoder.com/acm/contest/141/A 题目: 题意:背包题意,并打印路径. 思路:正常背包思路,不过五维的dp很容易爆 ...

  8. 【2018.12.17】NOI模拟赛4

    题目 WZJ题解 T1 T2 T3 后缀自动机+($parents$ 树)树链剖分 发现有大量子串需要考虑,考虑摁死子串的一端. 首先,这题显然是一道离线题,因为所有的询问都是 $1$ 到 某个数,也 ...

  9. 【JZOJ4898】【NOIP2016提高A组集训第17场11.16】人生的价值

    题目描述 NiroBC终于找到了人生的意义,可是她已经老了,在新世界,没有人认识她,她孤独地在病榻上回顾着自己平凡的一生,老泪纵横.NiroBC多么渴望再多活一会儿啊! 突然一个戴着黑色方框眼镜,方脸 ...

  10. 4.17 省选模拟赛 远行 LCT 启发式合并 倍增

    容易写出nQ的暴力 由于数据是期望的时间 所以直接dfs可以跑的很快 可以拿到70分. 当然 可以进一步优化暴力 使用换根dp 然后可以将暴力优化到n^2. const int MAXN=300010 ...

随机推荐

  1. 【Javaweb】servlet二

    servlet程序常见错误 1.url-pattern路径没有以 / 打头 2.servlet-name配置的值不存在 3.servlet-class标签的全类名配置错误 servlet-url地址如 ...

  2. 解决IDEA加载maven工程缓慢

    如图,哪里没有加哪里 -DarchetypeCatalog=internal

  3. 【JSOI2008】火星人 (哈希+Splay)

    题目 这种含有修改操作的就难以用后缀数组实现了,求LCP这种区间相等的类型可以想到用hash判断,同时LCP的答案大小符合二分条件可以二分求出,如果只有修改可以用线段树维护,因为还有有插入操作所以想到 ...

  4. Go笔记(3)-3种go语言的键盘输入详解

    go语言的键盘输入详解 go语言中有三种输入函数,分别是: fmt.Scanf() 可以按照指定的格式进行输入 fmt.Scanln() 通过指针将值赋值给变量 fmt.Scan() (1)fmt.S ...

  5. zookeeper JavaAPI 操作-watch监听

    1.NodeCache监听代码: @Test public void testNodeCache() throws Exception { //1.创建NodeCache对象 NodeCache no ...

  6. Mybatis大于、小于....转义写法

    描述 转义前 转义后 大于 > > 大于等于 >= >= 小于 < < 小于等于 <= <= 和 & & 单引号 ' &apos ...

  7. 使用jvm工具排查系统问题

    java-jvm-tool Jstatd 远程连接(推荐) 不用重启项目 远程机配置 [demo@localhost jvmtest]$ vi jstatd.all.policy# 内容grant c ...

  8. ElasticSearch索引库的增删改查

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/indices.html 创建索引.设置分片 https://www. ...

  9. 10.elasticsearch集群red恢复损坏的索引

    背景 客户磁盘损坏,修复磁盘后,重启机器,发现elasticsearch启动成功,ES状态正常green,但是历史数据都没有加载进,查看ES存储数据目录,发现数据还在. 解决方案 首先,需要确认ind ...

  10. 面试官:说一说你的第一个Java程序是怎么跑起来的

    面试官:"说一说你第一个Java程序是怎么跑起来的?" 我:"啊,您是说Hello World吗?" 面试官:"嗯,没错,几十年过去了,还是hello ...