大三第十二周学习笔记
创始人
2024-02-10 20:47:34
0

周三

M. Rock-Paper-Scissors Pyramid(思维)

斜着看,每次复制一遍加一个

用一个栈维护,如果当前可以打败栈顶的,就出栈,如果相同,入不入栈都可以,如果打不过也要入栈,因为它可以阻挡后面的。

最后栈底就是留下来的。

#include
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;const int N = 1e6 + 10;
char s[N];
int top;int main()
{map mp;mp['S'] = 0; mp['P'] = 1; mp['R'] = 2;int T; scanf("%d", &T);while(T--){string str; cin >> str;int len = str.size();top = 0;rep(i, 0, len){while(top && (mp[str[i]] + 1) % 3 == mp[s[top]]) top--;s[++top] = str[i];}printf("%c\n", s[1]);}return 0;
}

P3396 哈希冲突(根号分治)

用根号为分界线,一部分暴力,一部分预处理

对于这道题,模数小于等于根号n时,直接预处理

模数大于等于根号n时,直接暴力

#include
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;const int N = 1.5e5 + 10;
const int M = 400;
int s[M][M], a[N], n, m;int main()
{scanf("%d%d", &n, &m);_for(i, 1, n) scanf("%d", &a[i]);int block = sqrt(n);_for(i, 1, n)_for(j, 1, block)s[j][i % j] += a[i];while(m--){char op[10]; int x, y;scanf("%s%d%d", op, &x, &y);if(op[0] == 'A'){if(x <= block) printf("%d\n", s[x][y]);else{int res = 0;for(int i = y; i <= n; i += x) res += a[i];printf("%d\n", res);}}else{_for(j, 1, block) s[j][x % j] += y - a[x];a[x] = y;}}return 0;
}

Array Queries(根号分治)

1e5左右的数据范围要很敏感,很可能是n根号n的算法

这题而言,每次p最少会增加k

那么当k大于根号n时,最多跳根号n次

当k小于根号n时,可以用dp直接求出,倒着求一遍

#include
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;const int N = 1e5 + 10;
const int M = 350;
int dp[N][M], a[N], n, m;int main()
{scanf("%d", &n);_for(i, 1, n) scanf("%d", &a[i]);int block = sqrt(n);for(int i = n; i >= 1; i--)_for(k, 1, block){int j = i + a[i] + k;if(j > n) dp[i][k] = 1;else dp[i][k] = dp[j][k] + 1;}scanf("%d", &m);while(m--){int p, k;scanf("%d%d", &p, &k);if(k <= block) printf("%d\n", dp[p][k]);else{int res = 0;while(p <= n){p = p + a[p] + k;res++;}printf("%d\n", res);}}return 0;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...