「CF 1525A」Potion-making

Link.

显然。

#include<bits/stdc++.h>
typedef long long ll;
template<typename T>void sf(T &x){x=0;T f=0;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')f=1;for(;c>='0'&&c<='9';c=getchar())x=(x<<3)+(x<<1)+(c^'0');if(f)x=-x;}
template<typename T>void pf(T x,char l='\n'){static T s[100],t;if(x<0)putchar('-'),x=-x;do s[++t]=x%10,x/=10;while(x);while(t)putchar(s[t--]^'0');putchar(l);}
int gcd(int x,int y){return !y?x:gcd(y,x%y);}
int main()
{
int T,k;
sf(T);
while(T-->0)
{
sf(k);
int p1=k,p2=100-k,x=gcd(p1,p2);
p1/=x;
p2/=x;
pf(p1+p2);
}
return 0;
}

「CF 1525B」Permutation Sort

Link.

注意到答案只有 \(0/1/2/3\),分类讨论即可。

吃了三发罚时

#include<bits/stdc++.h>
typedef long long ll;
template<typename T>void sf(T &x){x=0;T f=0;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')f=1;for(;c>='0'&&c<='9';c=getchar())x=(x<<3)+(x<<1)+(c^'0');if(f)x=-x;}
template<typename T>void pf(T x,char l='\n'){static T s[100],t;if(x<0)putchar('-'),x=-x;do s[++t]=x%10,x/=10;while(x);while(t)putchar(s[t--]^'0');putchar(l);}
int T,n,a[60];
int main()
{
for(sf(T);T;--T)
{
sf(n);
for(int i=1;i<=n;++i) sf(a[i]);
int flag=1;
for(int i=2;i<=n;++i)
{
if(a[i]!=a[i-1]+1)
{
flag=0;
break;
}
}
if(!flag)
{
if(a[1]==n && a[n]==1) puts("3");
else if(a[n]==n || a[1]==1) puts("1");
else puts("2");
}
else puts("0");
}
return 0;
}

「CF 1525C」Robot Collisions

Link.

显然我不会。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mp make_pair
template<typename T>void sf(T &x) {
x = 0;
T f = 0;
char c = getchar(); for (; c < '0' || c > '9'; c = getchar())
if (c == '-')
f = 1; for (; c >= '0' && c <= '9'; c = getchar())
x = (x << 3) + (x << 1) + (c^'0'); if (f)
x = -x;
}
template<typename T>void pf(T x, char l = '\n') {
static T s[100], t; if (x < 0)
putchar('-'), x = -x; do
s[++t] = x % 10, x /= 10; while (x)
; while (t)
putchar(s[t--]^'0'); putchar(l);
}
struct st {
int a, b, id;
} Sts[300005], Uji[300005], Qql[300005];
bool cmp(st A, st B) {
return A.a < B.a;
}
int reait[300005];
int n, m;
int U(int x, int y) {
int res = 0; if (Sts[x].a < Sts[y].a) {
if (Sts[x].b == 0)
res += Sts[x].a, Sts[x].a = 0; if (Sts[y].b == 1)
res += (m - Sts[y].a), Sts[y].a = m; return (res + abs(Sts[x].a - Sts[y].a)) / 2;
} else {
if (Sts[x].b == 1)
res += (m - Sts[x].a), Sts[x].a = m; if (Sts[y].b == 0)
res += Sts[y].a, Sts[y].a = 0; return (res + abs(Sts[x].a - Sts[y].a)) / 2;
}
}
signed main() {
int T;
sf(T); while (T--) {
sf(n), sf(m); for (int i = 1; i <= n; i++)
reait[i] = -1; int rks = 0, tss = 0; for (int i = 1; i <= n; i++) {
sf(Sts[i].a);
Sts[i].id = i;
} for (int i = 1; i <= n; i++) {
char res = getchar(); while (res != 'L' && res != 'R')
res = getchar(); Sts[i].b = res == 'R';
} for (int i = 1; i <= n; i++) {
if (Sts[i].a & 1)
Qql[++tss] = Sts[i];
else
Uji[++rks] = Sts[i];
} sort(Uji + 1, Uji + rks + 1, cmp);
sort(Qql + 1, Qql + tss + 1, cmp);
stack <int> Q;
Q.push(1); for (int i = 2; i <= rks; i++) {
if (Uji[i].b == 0 && !Q.empty()) {
int u = Q.top();
Q.pop();
reait[Uji[i].id] = reait[Uji[u].id] = U(Uji[i].id, Uji[u].id);
} else
Q.push(i);
} while (!Q.empty()) {
int u = Q.top();
Q.pop(); if (!Q.empty()) {
int v = Q.top();
Q.pop();
reait[Uji[u].id] = reait[Uji[v].id] = U(Uji[u].id, Uji[v].id);
}
} Q.push(1); for (int i = 2; i <= tss; i++) {
if (Qql[i].b == 0 && !Q.empty()) {
int u = Q.top();
Q.pop();
reait[Qql[i].id] = reait[Qql[u].id] = U(Qql[i].id, Qql[u].id);
} else
Q.push(i);
} while (!Q.empty()) {
int u = Q.top();
Q.pop(); if (!Q.empty()) {
int v = Q.top();
Q.pop();
reait[Qql[u].id] = reait[Qql[v].id] = U(Qql[u].id, Qql[v].id);
}
} for (int i = 1; i <= n; i++)
printf("%lld ", reait[i]); printf("\n");
} return 0;
}

「CF 1525D」Armchairs

Link.

设 \(f(i,j)\) 表示考虑把第 \(j\) 个人放进前 \(i\) 个座位里的方案,转移。

多久没写 DP 了啊,这种水平的 DP 都写漏一堆东西。

#include<bits/stdc++.h>
typedef long long ll;
template<typename T>void sf(T &x){x=0;T f=0;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')f=1;for(;c>='0'&&c<='9';c=getchar())x=(x<<3)+(x<<1)+(c^'0');if(f)x=-x;}
template<typename T>void pf(T x,char l='\n'){static T s[100],t;if(x<0)putchar('-'),x=-x;do s[++t]=x%10,x/=10;while(x);while(t)putchar(s[t--]^'0');putchar(l);}
int n,a[5010],fr[5010],t0,oc[5010],t1,op[5010];
ll dp[5010][5010],ans=std::numeric_limits<ll>::max();
inline int fs(int x){return x<0?-x:x;}
int main()
{
sf(n);
for(int i=1;i<=n;++i)
{
sf(a[i]);
if(a[i]) oc[++t1]=i;
else fr[++t0]=i;
}
for(int i=1;i<=t1;++i) for(int j=0;j<=n;++j) dp[i][j]=1e18;
for(int i=1;i<=t1;++i) for(int j=1;j<=n;++j) {
dp[i][j]=dp[i][j-1];
if(!a[j]) dp[i][j]=std::min(dp[i][j],dp[i-1][j-1]+fs(oc[i]-j));
}
pf(dp[t1][n]);
return 0;
}

「CF 1525E」Assimilation IV

Link.

// Oops, something went wrong.

「CF 1525F」Goblins And Gnomes

Link.

// Oops, something went wrong.

Solution Set -「CF 1525」的更多相关文章

  1. Diary / Solution Set -「WC 2022」线上冬眠做噩梦

      大概只有比较有意思又不过分超出能力范围的题叭.   可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics   任意一个 ...

  2. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  3. Solution -「CF 1342E」Placing Rooks

    \(\mathcal{Description}\)   Link.   在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\ ...

  4. Solution -「CF 1622F」Quadratic Set

    \(\mathscr{Description}\)   Link.   求 \(S\subseteq\{1,2,\dots,n\}\),使得 \(\prod_{i\in S}i\) 是完全平方数,并最 ...

  5. Solution -「CF 923F」Public Service

    \(\mathscr{Description}\)   Link.   给定两棵含 \(n\) 个结点的树 \(T_1=(V_1,E_1),T_2=(V_2,E_2)\),求一个双射 \(\varph ...

  6. Solution -「CF 923E」Perpetual Subtraction

    \(\mathcal{Description}\)   Link.   有一个整数 \(x\in[0,n]\),初始时以 \(p_i\) 的概率取值 \(i\).进行 \(m\) 轮变换,每次均匀随机 ...

  7. Solution -「CF 1586F」Defender of Childhood Dreams

    \(\mathcal{Description}\)   Link.   定义有向图 \(G=(V,E)\),\(|V|=n\),\(\lang u,v\rang \in E \Leftrightarr ...

  8. Solution -「CF 1237E」Balanced Binary Search Trees

    \(\mathcal{Description}\)   Link.   定义棵点权为 \(1\sim n\) 的二叉搜索树 \(T\) 是 好树,当且仅当: 除去最深的所有叶子后,\(T\) 是满的: ...

  9. Solution -「CF 623E」Transforming Sequence

    题目 题意简述   link.   有一个 \(n\) 个元素的集合,你需要进行 \(m\) 次操作.每次操作选择集合的一个非空子集,要求该集合不是已选集合的并的子集.求操作的方案数,对 \(10^9 ...

  10. Solution -「CF 1023F」Mobile Phone Network

    \(\mathcal{Description}\)   Link.   有一个 \(n\) 个结点的图,并给定 \(m_1\) 条无向带权黑边,\(m_2\) 条无向无权白边.你需要为每条白边指定边权 ...

随机推荐

  1. 在技术圈混,不知道这些你就 OUT 了

    技术之路就是漫长的打怪升级,不断学习前人的踩坑经验才能提升自己,切忌闭门造车.所谓独乐乐不如众乐乐,强烈推荐以下公众号,让你的生活多点意思,希望小伙伴们能在 coding 的路上走的更远. OSC开源 ...

  2. CANoe_ Trace 和 Graphics 窗口的介绍和使用

    Canoe是一款用于汽车网络分析和仿真的工具,其中包括Trace和Graphics两个窗口,用于显示和分析CAN网络数据.以下是对Canoe的Trace和Graphics窗口的简要介绍和使用说明: 1 ...

  3. Python进行大文件的备份

    Python进行大文件的备份的思路:每次仅从原文件中读取指定字符的内容后写入新文件,然后循环操作. def copy_big_file(): # 接收用户输入的文件名 old_file = input ...

  4. 记一次加锁导致ECS服务器CPU飙高的处理

    导航 火线告警,CPU飚了 版本回退,迅速救火 猜测:分布式锁是罪魁祸首 代码重构,星夜上线 防患未然,功能可开关 高度戒备,应对早高峰 实时调整方案,稳了 结语 参考 本文首发于智客工坊-<记 ...

  5. 使用 Sa-Token 实现 [记住我] 模式登录、七天免登录

    一.需求分析 如图所示,一般网站的登录界面都会有一个 [记住我] 按钮,当你勾选它登录后,即使你关闭浏览器再次打开网站,也依然会处于登录状态,无须重复验证密码: 本文将详细介绍在 Sa-Token中, ...

  6. 前端Vue自定义简单实用轮播图封装组件 快速实现轮播图

    前端Vue自定义简单实用轮播图封装组件 快速实现轮播图, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13153 效果图如下: ...

  7. uni-app基于原生input增强选择picker插件 可用于地图定位选位置 页面跳转选数据

    前端基于原生input增强选择picker插件 可用于地图定位选位置 页面跳转选数据, 下载完整代码请访问uni-app插件市场地址: https://ext.dcloud.net.cn/plugin ...

  8. 自然语言处理 Paddle NLP - 检索式文本问答-理论

    问答系统(Question Answering System,QA) 是信息检索系统的一种高级形式,它能用准确.简洁的自然语言回答用户用自然语言提出的问题.其研究兴起的主要原因是人们对快速.准确地获取 ...

  9. 记一次Native memory leak排查过程

    1 问题现象 路由计算服务是路由系统的核心服务,负责运单路由计划的计算以及实操与计划的匹配.在运维过程中,发现在长期不重启的情况下,有TP99缓慢爬坡的现象.此外,在每周例行调度的试算过程中,能明显看 ...

  10. 添加.gitignore不生效问题

    1. 解决.gitignore不生效问题 把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中, ...