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

1.模拟算法

一.多项式输出

https://www.luogu.com.cn/problem/P1067

1.算法原理

2.代码实现

#include <iostream>
#include <cmath>using namespace std;int main()
{int n;cin >> n;for(int i = n;i >= 0;i--){int a;cin >> a;if(a == 0){continue;}//1. 符号if(a < 0){cout << "-";}else{if(i != n){cout << "+";}}//2.数字a = abs(a);if(a != 1 || (a == 1 && i == 0)){cout << a;}//3.次数if(i == 0){continue;}else if(i == 1){cout << 'x';}else{cout << "x^" << i;}}return 0;
}

二.蛇形方阵

https://www.luogu.com.cn/problem/P5731

1.算法原理

方向向量的定义的顺序也是有方法的(要符合我们的顺序):

我们的pos要不越界,那么我们就要对其进行取模操作

2.代码实现

#include <iostream>
#include <cmath>using namespace std;const int N = 15;//定义 右,下,左,上 四个方向
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};int arr[N][N];int main()
{int n;cin >> n;int x = 1,y = 1; //初始位置int cnt = 1;     //当前位置int pos = 0;     //当前的方向while(cnt <= n * n){arr[x][y] = cnt;//计算下一个位置int a = x + dx[pos];int b = y + dy[pos];//判断是否越界if(a < 1 || a > n || b < 1 || b > n || arr[a][b]){pos = (pos + 1) % 4;a = x + dx[pos],b = y + dy[pos];}x = a,y = b;cnt++;}for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){printf("%3d",arr[i][j]);}printf("\n");}return 0;
}

三.字符串的展开

https://www.luogu.com.cn/problem/P1098

1.算法原理

2.代码实现

#include <iostream>
#include <string.h>
#include <algorithm>using namespace std;int p1,p2,p3,n;
string s;
string ret;//判断是否是数字
bool isdig(char ch)
{return ch >= '0' && ch <= '9';
}//判断是否是小写字母
bool islet(char ch)
{return ch >= 'a' && ch <= 'z';
}//[left,right]之间的字符进行展开
void add(char left,char right)
{string t;for(char ch = left + 1;ch < right; ch++){//p1char tmp = ch;if(p1 == 2 && islet(tmp)){tmp -= 32;}else if(p1 == 3){tmp = '*';}//p2for(int i = 0;i < p2;i++){t += tmp;}}//p3if(p3 == 2){reverse(t.begin(),t.end());}ret += t;
}int main()
{cin >> p1 >> p2 >> p3 >> s;n = s.size();for(int i = 0;i < n; i++){char ch = s[i];if(s[i] != '-' || i == 0 || i == n-1){ret += ch;}else{char left = s[i - 1],right = s[i + 1];//判断是否展开if(isdig(left) && isdig(right) && right > left ||islet(left) && islet(right) && right > left){//展开add(left,right);}else{ret += ch;}}}cout << ret << endl;return 0;
}
http://www.dtcms.com/a/533358.html

相关文章:

  • 昆明优化网站wordpress用户注册插件
  • 若依框架学习Day02:功能改造与问题攻坚实战
  • 如何建设销售型企业网站锦州哪家做网站
  • 二叉树的最大深度-力扣
  • 悟空建站seo服务电商网站 网站服务内容
  • 域名打不开原来的网站官网域名改版方案
  • importlib.import_module(module).__dict__[class_name]
  • 宁波企业网站制作河南优化网站
  • 媒体网站 建设网络强国网站推广软件app
  • 三维视觉:原理与实践(课程笔记-相机模型与标定)
  • C++进阶:(一)深入理解继承机制
  • 南通网站建设服务公司公司签约网站
  • 网站后台开发做什么网站主体负责人能查询到吗
  • chp04【组队学习】Post-training-of-LLMs
  • 摄像机数据对象存储S3测试 之RustFS
  • web识别开发,在线%老版本图像识别和分类%系统开发,基于html,css,jquery,python,flask,cnn,opencv,无数据库
  • Vue项目配置cdn
  • 网站开发与设计岗位职责网线制作工具有哪些
  • 怎样提高网站流量北京做网站费用
  • PS怎么布局网站结构网络推广怎么做?
  • 智谱GLM 大模型家族与 ChatGLM3-6B 微调入门
  • 测试数据生成工具
  • 云台和雷达标定方法
  • 福州全网网站建设七牛云最新消息
  • asp.net做的网站要放到网上空间去要放哪些文件上去个体工商户可以网站建设吗
  • Linux 信号的保存机制
  • Cortex-M3-STM32F1 开发:(十三)HAL 库开发 ➤ printf 函数的使用与重定向
  • 客户制作网站时的问题个人备案网站放什么资料
  • 【JDBC】----- MySql数据库驱动jar包下载流程
  • C++中的LCA(最近公共祖先)详解