当前位置: 首页 > news >正文

2024.5.29晚训参考代码

因为本套题没有BFS例题,所以我先把BFS模板放着

#include<bits/stdc++.h>
using namespace std;
int n,m;//n*m的棋盘 
int dis[402][402]; 
bool vis[402][402];
int X[]={-2,-2,-1,-1,1,1,2,2};//偏移量的表 
int Y[]={-1,1,-2,2,-2,2,-1,1};//定义一个数组,我直接把这些元素从0位置填充进去 
struct node{int x;int y;int dis;//从起点走到当前(x,y)的最短步数 
};
int st,ed;//起点x  y坐标 
void bfs(){  queue<node>q;node now;now.x=st;now.y=ed;now.dis=0;q.push(now);//放入队列,第一个搜索的状态 dfs(st,ed,0)  while(!q.empty()){//第一步取出队首状态//第二步,弹出队首 //第三步  判断当前状态是不是已经走过了   后面再来到这个点肯定不是最短距离//仅限于所有距离都一样的情况   //第四步   判断当前的点是不是终点 //第五步  打标记//第六步  做相关的数据统计  比如记录(now.x,now.y)的最小步数  //第七步  以这个点拓展出去的其余状态  注意判断非法情况   }//bfs结束 
}
signed main(){int x,y;cin>>n>>m;cin>>st>>ed;//memset(dis,-1,sizeof(dis));//初始化数组    for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){dis[i][j]=1e9;//表示不可到达  }}//dis[i][j]表示从起点走到(i,j)的最短距离 bfs();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){//	dis[i][j]=1e9;//表示不可到达  if(dis[i][j]==1000000000)cout<<-1;else cout<<dis[i][j];cout<<" ";}cout<<'\n';}return 0;
}马的便利  
#include<bits/stdc++.h>
using namespace std;
struct node{int x;int y;int dis;//从起点走到(x,y)的距离 
}; 
int n,m,x,y;
int X[]={-1,-1,-2,-2,1,1,2,2};
int Y[]={2,-2,-1,1,2,-2,1,-1};
int dis[405][405];
int vis[405][405];
void bfs(){queue<node>q;node now;now.x=x;now.y=y;now.dis=0;q.push(now);while(!q.empty()){node now=q.front();q.pop();if(vis[now.x][now.y]==1){continue;//已经走过这个点了  }dis[now.x][now.y]=now.dis;vis[now.x][now.y]=1;node cnt;for(int i=0;i<8;i++){cnt.x=now.x+X[i];cnt.y=now.y+Y[i];cnt.dis=now.dis+1;if(cnt.x<1||cnt.x>n||cnt.y<1||cnt.y>m)continue;q.push(cnt);}}
}
int main(){cin>>n>>m>>x>>y;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){dis[i][j]=-1;}}bfs();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<dis[i][j]<<"  ";}cout<<'\n';}return 0;
}

在这里插入图片描述
需要考虑记忆化处理

#include<bits/stdc++.h>
using namespace std;
#define int long long 
int vis[30][30];
int n,m,s,b;
int dfs(int x,int y){if(x<0||y<0)return 0;if((x==s&&y==b)||(x==s-1&&y==b-2)||(x==s-2&&y==b-1)||(x==s-2&&y==b+1))return 0;if((x==s-1&&y==b+2)||(x==s+1&&y==b+2)||(x==s+2&&y==b+1)||(x==s+2&&y==b-1)||(x==s+1&&y==b-2))return 0;if(x==0&&y==0)return 1;if(vis[x][y])return vis[x][y];return vis[x][y]=dfs(x-1,y)+dfs(x,y-1);	
}
signed main() {cin>>n>>m>>s>>b;cout<<dfs(n,m);return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
char A[1005];
char B[1005];
int dp[1005][1005];
int main(){int n,m;cin>>n>>m;cin>>A+1>>B+1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(A[i]==B[j]){dp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j-1],max(dp[i-1][j],dp[i][j-1]));}}}cout<<dp[n][m];return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
long long dp[100005][2];
int main() {int n;cin>>n;//dp[0][0]=dp[0][]//dp[i][0] 没抢i银行  for(int i=1;i<=n;i++){long long x;cin>>x;
//		cout<<i<< "  ";dp[i][0]=max(dp[i-1][0],dp[i-1][1]);//没抢 dp[i][1]=dp[i-1][0]+x; 
//		cout<<dp[i][0]<<" "<<dp[i][1]<<'\n';}cout<<max(dp[n][0],dp[n][1]);return 0;
}

在这里插入图片描述
物品只拿一次,01背包

#include<bits/stdc++.h>
using namespace std;
int V[1005],W[1005];// 
int dp[1005];
//有一大堆财宝,体积分别是V[i]  价值是W[i]  
//你现在有一个体积为M的包,你想知道怎么样拿 能保证  在背包容量的限制下 拿到最多价值的财宝   
signed main(){//总背包容量10   //只考虑拿价值高的    价值是10,体积是10     可能有其他财宝价值5  体积1  有若干个    //dfs(拿/不拿)  暴力   n<=20  /*背包dp   01背包   dp[i][j]  表示处理完前i个物品 有j的容量  单独考虑处理第i个物品,那么是不是跟dp[i-1][] + 如何处理第i个物品=> dp[i][]  有关联 如果第i个物品你要拿 因为你拿了第i个物品,体积变大,变成了dp[i][j]  dp[i][j] = dp[i-1][j-V[i]] + W[i] 如果我们不拿第i个物品  变到了dp[i][j]  dp[i][j] =dp[i-1][j]  ?????我们的容量j  dp[i][j] =max(dp[i-1][j],dp[i-1][j-V[i]]+W[i]);  // j=?+V[i] */int M,n;cin>>M>>n;//M是总体积  n是物品个数   for(int i=1;i<=n;i++){cin>>V[i]>>W[i];//输入体积  和  价值  }for(int i=1;i<=n;i++){for(int j=M;j>=V[i];j--){dp[j]=max(dp[j],dp[j-V[i]]+W[i]);}}cout<<dp[M];return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
long long T,M,t[10001],v[10001],dp[10000001];
int main(){cin>>T>>M;for(int i=1;i<=M;i++)cin>>t[i]>>v[i];for(int i=1;i<=M;i++)for(int j=t[i];j<=T;j++)dp[j]=max(dp[j],dp[j-t[i]]+v[i]);cout<<dp[T];return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int dp[305][305];
int w[305];
int sum[305];
signed main(){/* 考虑区间dp dp[l][r]= 表示把[L,R]的石头合并成一堆所需要的最小花费   考虑转移1 1 1 1 1 1 1所有大的区间一定由小区间转移 考虑合并成长度为2的区间// dp[i][i+1]=(dp[i][i]+dp[i+1][i+1])+w[i]+w[i+1] 合并成3区间  来自于长度为2 + 拼长度为1  长度为4的区间  1+3  2+2  3+1  .... 考虑dp[l][r] 拆成两个区间,进行合并  */int n;cin>>n;for(int i=1;i<=n;i++){cin>>w[i];sum[i]=sum[i-1]+w[i];//前缀和 }for(int len=1;len<=n;len++){	 for(int i=1;i<=n;i++){//i作为区间起点//枚举区间长度//计算右端点在哪int j=i+len;dp[i][j]=1e9;if(j>n)break; for(int k=i;k<j;k++){dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);}}	} cout<<dp[1][n];return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int n;
int minx = 0x3f3f3f3f,maxn = -1;
int s[305];
int m[305];
int dp1[305][305];
int dp2[305][305];
int main()
{cin >> n;for(int i = 1; i <= n; i++){cin >> m[i];m[i + n] = m[i];}memset(dp1,0x3f3f3f3f,sizeof(dp1));memset(dp2,-1,sizeof(dp2));for(int i = 1; i <= n * 2; i++){s[i] = s[i - 1] + m[i];dp1[i][i] = 0;dp2[i][i] = 0;}for(int i = 2; i <= n; i++){for(int l = 1; l <= n * 2 - i + 1; l++){int r = l + i - 1;for(int j = l; j < r; j++){dp1[l][r] = min(dp1[l][r],dp1[l][j] + dp1[j + 1][r]);dp2[l][r] = max(dp2[l][r],dp2[l][j] + dp2[j + 1][r]);}dp1[l][r] += (s[r] - s[l - 1]);dp2[l][r] += (s[r] - s[l - 1]);}}for(int i = 1; i <= n; i++){minx = min(minx,dp1[i][i + n - 1]);maxn = max(maxn,dp2[i][i + n - 1]);}cout << minx << "\n" << maxn;return 0;
}

在这里插入图片描述
注意输出格式啊。。。。注意数据类型 long long

#include <bits/stdc++.h>
using namespace std;
int n, m;
int a[1005][1005];
long long sum[1005][1005];
int main() {cin >> n >> m;for(int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {cin >> a[i][j];}}for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++) {sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + a[i][j];}}int q; cin >> q;while(q--) {int X1, Y1, X2, Y2;cin >> X1 >> Y1 >> X2 >> Y2;cout << sum[X2][Y2] - sum[X1 - 1][Y2] - sum[X2][Y1 - 1] + sum[X1 - 1][Y1 - 1] << '\n';}return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int a[100005];
long long int pre[100005];
long long int sum[100005];
int main()
{int n;scanf("%d",&n);for(int i=1; i<=n; i++){scanf("%d",&a[i]);pre[i]=a[i]-a[i-1];}//1   2   3   4   5
//+2      -2
//+3          -3int m;scanf("%d",&m);while(m--){int l,r,x;scanf("%d%d%d",&l,&r,&x);pre[l]+=x;pre[r+1]-=x;}int st,ed;scanf("%d%d",&st,&ed);long long int ans=0;long long int cnt=0;for(int i=1;i<=n;i++){sum[i]=sum[i-1]+pre[i];}for(int i=st; i<=ed; i++){ans+=sum[i];}printf("%lld",ans);}

在这里插入图片描述

#include<bits/stdc++.h>
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define all(x) x.begin(),x.end()
using namespace std;
const double eps=1e-8;
const double PI=acos(-1.0);
typedef long long ll;
template<class T>int chkmin(T &a,T b){return a>b?a=b,1:0;}
template<class T>int chkmax(T &a,T b){return a<b?a=b,1:0;}
template<class T>T sqr(T a){return a*a;}
template<class T>T mmin(T a,T b){return a<b?a:b;}
template<class T>T mmax(T a,T b){return a>b?a:b;}
template<class T>T aabs(T a){return a<0?-a:a;}
#define min mmin
#define max mmax
#define abs aabs
int a[1024][1024];
int main(){
#ifdef cnyali_lkfreopen("in.txt","r",stdin);freopen("out.txt","w",stdout);
#endifint n,m,xa,ya,xb,yb;scanf("%d%d",&n,&m);for(int i=1;i<=m;++i){scanf("%d%d%d%d",&xa,&ya,&xb,&yb);++a[xa][ya];--a[xb+1][ya];--a[xa][yb+1];++a[xb+1][yb+1];}for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)printf("%d%c",a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1],j==n?'\n':' ');return 0;
}

在这里插入图片描述

答案   A【1+ 枚举i=2~n 里面所有的A[i]>A[i-1] 的情况的差  

相关文章:

2024.5.29晚训参考代码

因为本套题没有BFS例题&#xff0c;所以我先把BFS模板放着 #include<bits/stdc.h> using namespace std; int n,m;//n*m的棋盘 int dis[402][402]; bool vis[402][402]; int X[]{-2,-2,-1,-1,1,1,2,2};//偏移量的表 int Y[]{-1,1,-2,2,-2,2,-1,1};//定义一个数组&…...

【计算机网络】——概述(图文并茂)

概述 一.信息时代的计算机网络二.互联网概述1.网络&#xff0c;互连网&#xff0c;互联网&#xff08;因特网&#xff09;1.网络2.互连网3.互联网&#xff08;因特网&#xff09; 2.互联网简介1.互联网发展的三个阶段2.互联网服务提供者&#xff08;ISP&#xff09;3.互联网的组…...

C语言多个源程序编译的CMakeList文件编写/源程序生成动态库

1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下&#xff1a; main.cpp中include“LCD_2inch4.h”头文件&#xff0c;而LCD_2inch4.h中include其它源程序&#xff0c;则CmakeLists.txt文件可为如下&#xff1a; # 设置项目名称 cmake_minimum_required(VERSI…...

C# list集合

一、list集合基本使用 1.添加元素 ① 单个元素添加 List<int> list new List<int>();for (int i 0; i < 3; i){list.Add(i);}//输出&#xff1a;0,1,2 ②初始化时添加元素 List<int> list2 new List<int> { 1, 2, 3 };//输出&#xff1a;0,1…...

****三次握手和四次挥手

一、三次握手 1.简要描述TCP三次握手的过程 第一次握手&#xff0c;客户端发送SYN包到服务器&#xff1b; 第二次握手&#xff0c;服务器收到SYN包&#xff0c;回复一个SYNACK包&#xff1b; 第三次握手&#xff0c;客户端收到服务器的SYNACK包后&#xff0c;回复一个ACK包…...

开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?

开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势&#xff1f; ADR药物不良反应监测系统具有多个显著的优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; 一、提高监测效率与准确性&#xff1a; 通过自动化的数据收集…...

问题排查|记录一次基于mymuduo库开发的服务器错误排查(段错误--Segmentation fault (core dumped))

问题记录&#xff1a; 在刚完成mymuduo库之后&#xff0c;写了一个简单的测试服务器&#xff0c; 但是在服务器运行后直接报错&#xff1a; cherryhcss-ecs-4995:~/mymuduo/example$ ./testserver Segmentation fault (core dumped)出现多错误这通常意味着程序试图访问其内存空…...

Mysql常用操作DQL数据库、表操作:

DQL是指MySQL数据库中的数据查询语言&#xff08;Data Query Language&#xff09;。它是用来从数据库中检索所需数据的语言。DQL允许用户通过指定查询条件和筛选条件来检索数据库中的数据&#xff0c;并以所需的方式来显示结果。DQL语句可以用于从单个表中查询数据&#xff0c…...

标题:Go语言中的YAML魔法:轻松配置你的环境

摘要&#xff1a; 本文将介绍如何在Go语言项目中使用YAML文件来管理配置&#xff0c;包括如何读取YAML文件以及如何在代码中解析和使用这些配置。 正文&#xff1a; 在编程世界中&#xff0c;配置管理是每个项目都必须面对的问题。对于Go语言项目来说&#xff0c;YAML文件是一…...

STM32高级控制定时器之输入捕获模式

目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址&#xf…...

使用 Vue 3 和 qrcode.js 开发二维码显示组件

二维码在现代应用中广泛使用&#xff0c;例如支付、身份验证、链接分享等。本文将介绍如何使用 Vue 3 和 qrcode.js 库来创建一个灵活的二维码显示组件&#xff0c;并展示如何在应用中使用它。 1. 安装必要的依赖 首先&#xff0c;我们需要安装 Vue 3 和 qrcode.js。如果你还…...

LabVIEW异步编程概述

LabVIEW异步编程是一种在图形化编程环境中处理并行任务的方法。通过异步执行&#xff0c;可以提高程序的响应速度和资源利用效率&#xff0c;使得多个任务可以独立进行而不互相干扰。 原理 LabVIEW异步编程的核心在于使用异步调用节点&#xff08;Asynchronous Call By Refer…...

【数据库】MySQL表的操作

目录 一.创建表 二.查看表 三.修改表 四.删除表 一.创建表 基本语法&#xff1a; CREATE TABLE table_name(field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 储存引擎field表示列名 datatype表示列的类型 charatcer se…...

【mybatis解决oracle查询in超过1000条数据】

1、因为代码中前人未考虑in 数据可能大于1000&#xff0c;导致现在系统报错&#xff0c;MPP low前人 直接上sql select * from table a <where><if test"list ! null and list.size > 0">and a.name in<foreach collection"list" inde…...

EasyExcel之动态表头导出不生效

今天接到一个优化需求&#xff0c;表格导出后的表头顺序和页面不一致&#xff0c;要优化成一致的。根据传入的字段&#xff0c;动态导出数据&#xff0c;并保证顺序。 我看到导出的实体类都有ExcelProperty注解&#xff0c;同时也在官网查看了这注解的含义和使用。 ExcelPrope…...

appium元素定位工具_uiautomatorviewer.bat

特点&#xff1a; uiautomatorviewer是android-sdk自带的元素定位工具uiautomatorviewer只能用于安卓系统&#xff1b;它是通过截屏分析XML布局文件方式&#xff0c;来提供控件信息的查看服务 uiautomatorviewer.bat 基本使用 路径&#xff1a;这个工具是Android SDK中自带&…...

手机离线翻译哪个好?断网翻译也能超丝滑

有时在异国他乡&#xff0c;面对语言不通的窘境&#xff0c;即便是简单的对话也变得异常困难&#xff0c;真是挑战满满&#xff01; 然而&#xff0c;能离线翻译的软件让语言障碍不再是问题&#xff0c;不必依赖网络也能轻松进行翻译啦~ 只需下载所需的语言包&#xff0c;选择…...

神器!!Python热重载调试【送源码】

在 Python 开发的路上&#xff0c;调试是我们不可避免的一环。 而今天推荐的开源项目Reloadium &#xff0c;让你在不重启程序的情况下实现代码的即时更新和调试。 &#x1f504; Reloadium 功能亮点&#xff1a; 1. 热重载魔法&#xff1a; Reloadium 不仅仅能够实现代码的…...

Flutter基础 -- Dart 语言 -- 列表集合枚举

目录 1. 列表 List 1.1 初始 1.2 声明 1.2.1 自动 1.2.2 定长 1.2.3 生成数据 1.3 属性 1.4 方法 1.4.1 添加 1.4.2 查询 1.4.3 删除 1.4.4 Range 1.4.5 洗牌 1.4.6 排序 1.4.7 复制子列表 1.4.8 操作符 2. 集合 Map 2.1 初始 2.2 声明 2.2.1 松散 2.2.2 …...

怎么花草识别?方法有三种!

怎么花草识别&#xff1f;在这个五彩斑斓的世界里&#xff0c;花草是我们生活中不可或缺的一部分。它们点缀着我们的环境&#xff0c;为我们带来无尽的美丽与惊喜。然而&#xff0c;面对众多的花草种类&#xff0c;你是否曾感到困惑和迷茫&#xff0c;不知道如何识别它们&#…...

提升JSON处理效率的三个核心技巧:使用VS Code插件优化开发流程

提升JSON处理效率的三个核心技巧&#xff1a;使用VS Code插件优化开发流程 【免费下载链接】vscode-json Json for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-json 在现代软件开发中&#xff0c;JSON作为数据交换的标准格式&#xff0c;其…...

Salsa错误处理最佳实践:利用累加器优雅报告诊断信息

Salsa错误处理最佳实践&#xff1a;利用累加器优雅报告诊断信息 【免费下载链接】salsa A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustcs query system. 项目地址: https://gitcode.com/gh_mirrors/sa/salsa …...

Qwen3.5-9B多场景落地:代码辅助、作业答疑、图片分析一文详解

Qwen3.5-9B多场景落地&#xff1a;代码辅助、作业答疑、图片分析一文详解 1. 认识Qwen3.5-9B大模型 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在多个领域展现出强大的能力。这个模型不仅支持传统的文本处理&#xff0c;还能理解图片内容&#xff0c;实现真正…...

2026 全新利器!餐饮零售实体门店督导的三款法宝,巡店稽查与整改追踪全搞定

在餐饮和零售行业担任督导的人员&#xff0c;每日都被工作压得喘不过气来。巡店、检查、整改、培训等任务接连不断&#xff0c;忙得不可开交。而且&#xff0c;他们常常会遭遇一些令人头疼的状况&#xff1a;总部制定的标准&#xff0c;到了门店执行起来就走样&#xff1b;上午…...

通义千问1.5-1.8B-Chat-GPTQ-Int4一键部署效果展示:低显存占用下的流畅对话体验

通义千问1.5-1.8B-Chat-GPTQ-Int4一键部署效果展示&#xff1a;低显存占用下的流畅对话体验 最近在尝试各种轻量级大模型本地部署&#xff0c;一个绕不开的痛点就是显存。动不动就十几GB的显存需求&#xff0c;让很多只有一张普通消费级显卡的朋友望而却步。正好&#xff0c;我…...

关于 SSR,我承认我之前只是“会用”而已

SSR、Hydration 这些词在 Web 前端领域非常常见&#xff0c;开发者经常能接触到这个概念。但是&#xff0c;这些是什么&#xff1f;为什么&#xff1f;怎么用&#xff1f;过去我都没有深究下去&#xff0c;关于 SSR&#xff0c;我承认我之前只是“会用”而已。 一、区分 CSR 还…...

高效电源芯片ASP3605性能优化全解析,使用Django从零开始构建一个个人博客系统。

ASP3605电源芯片的基本特性 ASP3605是一款高效同步降压DC-DC转换器芯片&#xff0c;输入电压范围通常在4.5V至18V之间&#xff0c;输出电流能力可达5A。其开关频率可调节&#xff08;300kHz至2MHz&#xff09;&#xff0c;支持轻载高效模式&#xff08;如PFM&#xff09;&#…...

开源工具Free-NTFS-for-Mac:跨平台NTFS设备高效管理指南

开源工具Free-NTFS-for-Mac&#xff1a;跨平台NTFS设备高效管理指南 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management …...

RMBG-2.0快速上手指南:上传即处理,3步完成透明物体精细抠图

RMBG-2.0快速上手指南&#xff1a;上传即处理&#xff0c;3步完成透明物体精细抠图 1. 为什么你需要RMBG-2.0——不只是“能用”&#xff0c;而是“好用” 你有没有遇到过这样的情况&#xff1a;一张玻璃杯的照片&#xff0c;边缘泛着光晕&#xff0c;背景和杯身几乎融为一体…...

ACM模式

学习视频&#xff1a; 一个视频讲明白ACM模式&#xff01;_哔哩哔哩_bilibili 输入 data list(map(int,input.split())) 假设你在键盘上输入了这样一行数字&#xff1a;10 20 30&#xff0c;然后按了回车。 第一层&#xff08;最里面&#xff09;&#xff1a;input() 动作&…...