「ABC 197A」Rotate

Link.

略。

#include<bits/stdc++.h>
using namespace std;
int main(){
char a,b,c;cin>>a>>b>>c;cout<<b<<c<<a;
return 0;
}

「ABC 197B」Visibility

Link.

扫。

#include<bits/stdc++.h>
using namespace std;
int main(){
int h,w,x,y;cin>>h>>w>>x>>y;vector<string> a(h);--x,--y;
for(string &i:a)cin>>i;
int ans=0;
for(int i=x;~i;--i)if(a[i][y]=='.')++ans;/*,printf("(%d %d)\n",i+1,y+1);*/else break;
for(int i=x;i<h;++i)if(a[i][y]=='.')++ans;/*,printf("(%d %d)\n",i+1,y+1);*/else break;
for(int i=y;~i;--i)if(a[x][i]=='.')++ans;/*,printf("(%d %d)\n",x+1,i+1);*/else break;
for(int i=y;i<w;++i)if(a[x][i]=='.')++ans;/*,printf("(%d %d)\n",x+1,i+1);*/else break;
cout<<ans-3;
return 0;
}

「ABC 197C」ORXOR

Link.

二进制枚举暴力算。

#include<bits/stdc++.h>
using namespace std;
long long n,a[30],b[30];
int main(){
scanf("%lld",&n);for(long long i=1;i<=n;++i){scanf("%lld",&a[i]);}
long long up=(1<<n),ans=1e18;
for(long long i=0;i<=up;++i){
long long ct=1;
b[ct]=a[1];
for(long long j=2;j<=n;++j)if(((i>>(j-1))&1)^((i>>(j-2))&1))b[++ct]=a[j];else b[ct]|=a[j];
long long tmp=0;
for(long long j=1;j<=ct;++j)tmp^=b[j];
ans=min(ans,tmp);
}
printf("%lld\n",ans);
return 0;
}

「ABC 197D」Opposite

Link.

数学题,不会,而且读不太懂题。

// Oops, something went wrong.

「ABC 197E」Traveler

Link.

这个题看起来就很 关路灯。

对于每一种颜色(这里的颜色是指我们已经收集完了上一种颜色,正在收集的颜色),我们不可能走过而不拾。

于是收完一种颜色后,我们一定是这种颜色的的最左 / 右边。

然后就可以 DP 了;设 \(f_{i,0\text{ or }1}\) 为拾 \(i\)-th 颜色,在左 / 右,转移显然。

/*
Denote f[i][0/1] for the minimum time, that we finish collecting the i-th color and we're at the left/right (0/1) endpoint.
f[i][0]=min( f[las][0]+Dist( R[las],L[i] ),f[las][1]+Dist( L[las],L[i] ) )+R[i]-L[i];
f[i][1]=min( f[las][0]+Dist( R[las],R[i] ),f[las][1]+Dist( L[las],R[i] ) )+R[i]-L[i];
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL INF=1e18;
int n;
LL f[200010][2],L[200010],R[200010];
int main()
{
scanf("%d",&n);
for( int i=1;i<=n;++i ) L[i]=INF,R[i]=-INF;
for( int i=1;i<=n;++i )
{
LL pos;
int color;
scanf( "%lld %d",&pos,&color );
L[color]=min( pos,L[color] );
R[color]=max( pos,R[color] );
}
#define Dist( x,y ) ( LL( abs( ( x )-( y ) ) ) )
for( int i=1,las=0;i<=n+1;++i )
{
if( L[i]!=INF )
{
f[i][0]=min( f[las][0]+Dist( R[las],L[i] ),f[las][1]+Dist( L[las],L[i] ) )+R[i]-L[i];
f[i][1]=min( f[las][0]+Dist( R[las],R[i] ),f[las][1]+Dist( L[las],R[i] ) )+R[i]-L[i];
las=i;
}
}
printf( "%lld\n",f[n+1][1] );
return 0;
}

「ABC 197F」Construct a Palindrome

Link.

相当于是从 \(1\) 和 \(n\) 同时走,每次走字母一样的边,直接双向 BFS 即可。

#include<bits/stdc++.h>
using namespace std;
#define turn(c) ((c)-'a')
#define fs first
#define sc second
const int INF=1e9;
vector<int> suf[1010][26];
int n,m,ans=INF,vis[1010][1010];
struct node
{
int fs,sc,val;
node(int A=0,int B=0,int C=0){fs=A,sc=B,val=C;}
};
queue<node> q;
int main()
{
// freopen("in.in","r",stdin);
// freopen("my.out","w",stdout);
scanf("%d %d",&n,&m);
vis[1][n]=1;
for(int i=1;i<=m;++i)
{
int x,y;
scanf("%d %d",&x,&y);
char c=getchar();
while(c<'a' || c>'z') c=getchar();
suf[x][turn(c)].emplace_back(y);
suf[y][turn(c)].emplace_back(x);
}
q.emplace(node(1,n,0));
while(!q.empty())
{
int one=q.front().fs,ano=q.front().sc,lav=q.front().val;
q.pop();
if(lav==ans) return printf("%d\n",ans<<1),0;
for(int i=0;i<26;++i)
{
for(int exone:suf[one][i])
{
for(int exano:suf[ano][i])
{
if(exone==ano || exano==one) return printf("%d\n",lav<<1|1),0;
if(exone==exano) ans=lav+1;
if(!vis[exone][exano])
{
vis[exone][exano]=1;
q.emplace(node(exone,exano,lav+1));
}
}
}
}
}
printf("-1\n");
return 0;
}

Solution Set -「ABC 197」的更多相关文章

  1. Solution Set -「ABC 217」

      大家好屑兔子又来啦! [A - Lexicographic Order]   说个笑话,\(\color{black}{\text{W}}\color{red}{\text{alkingDead} ...

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

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

  3. 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 ...

  4. Solution -「ABC 219H」Candles

    \(\mathcal{Description}\)   Link.   有 \(n\) 支蜡烛,第 \(i\) 支的坐标为 \(x_i\),初始长度为 \(a_i\),每单位时间燃烧变短 \(1\) ...

  5. Solution -「ABC 215H」Cabbage Master

    \(\mathcal{Description}\)   Link.   有 \(n\) 种颜色的,第 \(i\) 种有 \(a_i\) 个,任意两球互不相同.还有 \(m\) 个盒子,每个盒子可以被放 ...

  6. Solution -「ABC 213G」Connectivity 2

    \(\mathcal{Description}\)   Link.   给定简单无向图 \(G=(V,E)\),点的编号从 \(1\) 到 \(|V|=n\).对于 \(k=2..n\),求 \(H= ...

  7. Solution -「ABC 213H」Stroll

    \(\mathcal{Description}\)   Link.   给定一个含 \(n\) 个结点 \(m\) 条边的简单无向图,每条边的边权是一个常数项为 \(0\) 的 \(T\) 次多项式, ...

  8. Solution -「ABC 217」题解

    D - Cutting Woods 记录每一个切割点,每次求前驱后驱就好了,注意简单判断一下开闭区间. 考场上采用的 FHQ_Treap 无脑莽. #include <cstdio> #i ...

  9. 「ABC 249Ex」Dye Color

    考虑停时定理. 初始势能为 \(\sum \Phi(cnt_i)\),末势能为 \(\Phi(n)\),我们希望构造这样一个 \(\Phi:Z\to Z\) 函数,使得每一次操作期望势能变化量为常数. ...

  10. Note -「Lagrange 插值」学习笔记

    目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...

随机推荐

  1. 杭电多校第二场 DOS Card

    杭电多校第二场 DOS Card 评价一下这道题:我写过最爽的线段树题. 这道题真的非常令人身心愉悦,非常厉害的一道线段树入门题.我写这个一次调试都没有,过了样例就交了就过了,一切都是行云流水. 这道 ...

  2. 拒绝conda, 用virtualenv构建多版本的python开发环境

    本文章转载自公众号 "生信码农笔记(ID:bio-coder)",已获得原作者授权. 1. 不喜欢用 conda 特别不喜欢 bioconda, miniconda, Anacon ...

  3. C++别名的使用

    c++中的别名使用,类似引用,在别名中,"&"的意思不再是取地址,而是建立一个指针,直接指向数据.这是一个小例子: #include <iostream> us ...

  4. Yolov5代码解析(输入端、BackBone、Neck、输出端))

    [深度学习]总目录 输入端:数据增强.锚框计算等. backbone:进行特征提取.常用的骨干网络有VGG,ResNet,DenseNet,MobileNet,EfficientNet,CSPDark ...

  5. 【技术积累】Git中的基础知识【一】

    Git是什么?有什么特点? Git是一个分布式版本控制系统,常用于软件开发中的源代码管理.它最初由Linux开发者Linus Torvalds创建,旨在管理Linux内核的开发. Git具有以下特点: ...

  6. VSCode中打开NodeJS项目自动切换对应版本的配置

    这几年搞了不少静态站点,有的是Hexo的,有的是VuePress的.由于不同的主题对于NodeJS的版本要求不同,所以本机上不少NodeJS的版本. 关于如何管理多个NodeJS版本,很早之前就写过用 ...

  7. 【Docker】离线安装

    离线安装Docker 1.下载docker 离线安装包 ​ 下载地址如下:Index of linux/static/stable/x86_64/ 2.将下载的包上传至服务器上 我这里下载的是20.1 ...

  8. BUUCTF-MISC-九连环(steghide隐写+伪加密)

    开局一张图 丢入winhex里,尾部有其他文件名 kali中binwalk -e x.jpg 得到的zip中 图片打不开 丢入winhex,发现jpg处是伪加密 修改之后,解压可打开图片,另一个压缩包 ...

  9. 如何根据oops函数偏移快速定位源码?

    如何根据函数偏移快速定位源码? 在内核栈的输出中,你一定注意到每一个函数的输出格式都是函数名+偏移量,而这儿的偏移就是调用下一个函数的位置.那么,能不能根据函数名+偏移量直接定位源码的位置呢? 答案是 ...

  10. go语言全景俯瞰

    本篇是语言教学的"传统项目".每个写go语言教学的人,都会介绍它的发展历程,应用领域,优缺点和特点来介绍自己的理由.当然如果你有自己的理解,那就更好了,欢迎讨论! 全景简介 go语 ...