09 2023 档案

摘要:\(Problem A. Rooms and Passages\) 倒着处理每个位置正数的最前部的位置。 如果是正数,显然答案为后一个位置的答案 \(+1\) 。 如果是负数且前面出现过相应的正数,答案要对这个区间长度 \(-1\) 的取 \(min\) 。 void solve(){ int n= 阅读全文
posted @ 2023-09-20 23:47 EdGrass 阅读(108) 评论(0) 推荐(0)
摘要:\(B. Marbles\) 如果是 \(Nim\) 博弈,题目应该改成到转移所有石子。显然要转化到将所有石子转移到 \((1,2)\) 或者 \((2,1)\) ,特判无需到达这两个点的必败态,对其他点使用 \(Nim\) 博弈判断胜负态。 int sg[N][N],vis[N]; void in 阅读全文
posted @ 2023-09-19 23:50 EdGrass 阅读(28) 评论(0) 推荐(0)
摘要:\(A.大水题\) void solve(){ int n=read(); puts(n<=6?"water":"dry"); //puts(ans>0?"Yes":"No"); } \(B.原粥率\) void solve(){ int n=read(),m=read(); double ans= 阅读全文
posted @ 2023-09-19 01:10 EdGrass 阅读(62) 评论(0) 推荐(0)
摘要:\(A. green_gold_dog, array and permutation\) 让大的数减小的数就可以制造更多的不同。 PII a[N]; int ans[N]; void solve(){ int n=read(); for(int i=1;i<=n;i++){ a[i]=make_pa 阅读全文
posted @ 2023-09-12 00:43 EdGrass 阅读(187) 评论(0) 推荐(0)
摘要:\(A. Array Coloring\) 显然需要奇数个偶数即可满足题目。 void solve(){ int n=read(),res=0; for(int i=1;i<=n;i++){ int x=read(); if(x%2)res++; } puts(res%2==0?"YES":"NO" 阅读全文
posted @ 2023-09-10 15:18 EdGrass 阅读(47) 评论(0) 推荐(0)
摘要:\(A. Escalator Conversations\) 用 \(map\) 存楼梯的高度(差),对每个人看一下需要的楼梯高度是否存在。 int a[N]; void solve(){ int n=read(),m=read(),k=read(),h=read(); map<int,int>mp 阅读全文
posted @ 2023-09-10 14:08 EdGrass 阅读(33) 评论(0) 推荐(0)
摘要:\(A - Legendary Players\) map<char ,int >mp; void solve(){ string s; cin>>s; cout<<mp[s[0]]<<'\n'; //puts(ans>0?"YES":"NO"); //puts(ans>0?"Yes":"No"); 阅读全文
posted @ 2023-09-09 22:00 EdGrass 阅读(121) 评论(0) 推荐(0)
摘要:\(A. Two Vessels\) 一开始我以为那个 \(c\) 桶只能装满,看了好久。 范围内的任意容量都可以取的话,那么只要看需要转移多少量,然后看需要多少次。 void solve(){ int n=read(),m=read(),k=read(); double nd=abs(n-m)*1 阅读全文
posted @ 2023-09-08 00:57 EdGrass 阅读(171) 评论(1) 推荐(0)
摘要:\(A. Cowardly Rooks\) 我模拟了一遍,因为我没看到题目中给出的矩阵已经合法, \(a\) 题第一次写这么多。 实验室同事跟我说只要判断 \(n\) 和 \(m\) 的大小关系就行了。 int x[N],y[N],m,n; bool check(){ for(int i=1;i<= 阅读全文
posted @ 2023-09-07 21:55 EdGrass 阅读(43) 评论(0) 推荐(0)
摘要:\(a\) int a[N]; void solve(){ int n=read(); for(int i=1;i<=n;i++){ a[i]=read(); } sort(a+1,a+1+n); int ans=0; for(int i=1;i<=min(5,n);i++){ if(a[i]<=3 阅读全文
posted @ 2023-09-05 21:23 EdGrass 阅读(171) 评论(0) 推荐(0)
摘要:\(a\) 一个简单的坐标转换,原来的 \(a[i][j]\) 会变为 \(b[j][n-i+1]\) int b[N][N]; void solve(){ int n=read(),m=read(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ b[ 阅读全文
posted @ 2023-09-04 21:08 EdGrass 阅读(354) 评论(0) 推荐(0)
摘要:卡特兰数是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图和比利时的数学家欧仁·查理·卡特兰的名字来命名. 前 \(10\) 项为:\(1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862\) 公式 \(tip:\) 在 \(n=17\) 时 \(Ca 阅读全文
posted @ 2023-09-01 14:16 EdGrass 阅读(52) 评论(0) 推荐(0)
摘要:\(A. Gift Carpet\) void solve(){ int n=read(),m=read(); char a[n+1][m+1]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } string s="vi 阅读全文
posted @ 2023-09-01 14:09 EdGrass 阅读(41) 评论(0) 推荐(0)