#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
int n,k;
intmain(){
RI i; for (scanf("%d%d",&n,&k),i=1;i<2*n;++i)
printf("%d %d\n",(i+1)/2,(i+1)/2+(i%2?0:1));
printf("%d %d\n",n,1); int left=k-2*n,x=1,y=1;
while (left>0)
{
auto expand=[&](void)
{
if (y==n) ++x,y=1; else ++y;
};
while (x==y||x%n+1==y) expand();
--left; printf("%d %d\n",x,y); expand();
}
return0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int n,a[N],f[N][4]; //0: unchanged; 1: to 1; 2: to even; 3: to odd (exclude 1)intmain(){
RI i,j; for (scanf("%d",&n),i=1;i<=n;++i)
for (scanf("%d",&a[i]),j=0;j<4;++j) f[i][j]=1e9;
for (f[1][0]=0,f[1][1]=f[1][2]=f[1][3]=i=1;i<n;++i)
{
auto is_prime=[&](CI x)
{
for (RI i=2;i*i<=x;++i) if (x%i==0) returnfalse; returntrue;
};
if (is_prime(a[i]+a[i+1])) f[i+1][0]=min(f[i+1][0],f[i][0]);
if (a[i]%2==1) f[i+1][2]=min(f[i+1][2],f[i][0]+1);
else f[i+1][3]=min(f[i+1][3],f[i][0]+1);
if (is_prime(a[i]+1)) f[i+1][1]=min(f[i+1][1],f[i][0]+1);
if (is_prime(1+a[i+1])) f[i+1][0]=min(f[i+1][0],f[i][1]);
f[i+1][2]=min(f[i+1][2],f[i][1]+1); f[i+1][1]=min(f[i+1][1],f[i][1]+1);
if (a[i+1]%2==1) f[i+1][0]=min(f[i+1][0],f[i][2]);
f[i+1][1]=min(f[i+1][1],f[i][2]+1); f[i+1][3]=min(f[i+1][3],f[i][2]+1);
if (a[i+1]%2==0) f[i+1][0]=min(f[i+1][0],f[i][3]);
f[i+1][2]=min(f[i+1][2],f[i][3]+1);
}
int ans=f[n][0]; for (i=1;i<=3;++i) ans=min(ans,f[n][i]);
returnprintf("%d",ans),0;
}
8|0G. Path
好像是个签,我题目都没看
#include<bits/stdc++.h>usingnamespace std;
#define int long longconstint N = 1e5+5;
int n, m, A[N], B[N];
signedmain(){
ios::sync_with_stdio(0); cin.tie(0);
cin >> n >> m;
for (int i=1; i<=n; ++i) cin >> A[i];
for (int i=1; i<=m; ++i) cin >> B[i];
int ans=0;
for (int i=1; i<n; ++i) ans += abs(A[i+1]-A[i]);
for (int i=1; i<m; ++i) ans += abs(B[i+1]-B[i]);
cout << ans << '\n';
return0;
}
#include<cstdio>#include<iostream>#include<vector>#include<algorithm>#define RI register int#define CI const int&usingnamespace std;
constint N=(1<<13)+5;
int n,W,g[N],f[N],x,c[N];
intmain(){
RI i,j; for (scanf("%d%d",&n,&W),i=1;i<=n;++i) scanf("%d",&x),++c[x-1];
int m=0; for (i=0;i<13;++i) if (c[i]>0) m|=(1<<i);
vector <int> states; for (i=m;i;i=(i-1)&m) states.push_back(i);
sort(states.begin(),states.end());
for (auto x:states)
{
int sum=0; for (i=0;i<13;++i) if ((x>>i)&1) sum+=c[i];
if (sum<=W) g[x]=1;
}
for (auto x:states)
{
f[x]=1e9; for (i=x;i;i=(i-1)&x)
if (g[i]) f[x]=min(f[x],f[x^i]+1);
}
returnprintf("%d",f[m]),0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现