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

Citation引证/Equilateral Triangle等边三角形/ 字符串旋转/F.小红的区间修改(二)

B - 引证

思路

这题就是将数从大到小排序之后,就可以发现满足条件的数就是i<a[i],然后倒序遍历找出第一个符合条件的结束。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n;
int a[102];
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}sort(a + 1, a + n + 1, [](const int a,const int b) {return a > b;});for (int i = n; i >= 0; i--) {if (i<=a[i]) {cout << i << endl;break;}}return 0;
}

C - 等边三角形

 

思路: 

这题的数据相当于差分,累加取模得到位置,记录位置的点数。

这题有等边三角型的前提是l是3的倍数,这样才能在均分圆时有60度的可能。

然后它成三角形的三个点就是i+0*l/3       i+1*l/3       i+2*l/3  的乘积和就是它的答案

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n, l;
int a[300005];
long long sum = 0, pq = 1;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> n >> l;a[0]++;int q = 0, p;for (int i = 0; i < n - 1; i++) {cin >> p;q = (q + p) % l;a[q]++;}if (l % 3 != 0) {cout << 0 << endl;}else {int j = l / 3;for (int i = 0; i < j; i++) {pq = 1;for (int z = 0; z < 3; z++) {pq *= a[i + j * z];}sum += pq;}cout << sum << endl;}return 0;
}

D - 字符串旋转

 

 思路:

他这个只能左移一个单位,所以他字典序最小就是当出现第一个a[i]>a[i+1]时移动直到a[i]<a[i+j];结束,然后输出时我感觉我的还是比较好的。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n,m;
string s;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> n;while (n--) {cin >> m;cin >> s;bool gg = false;for (int i = 0; i < m; i++) {if (i + 1 < m) {if (gg) {cout << s[i];continue;}if (s[i] <= s[i + 1]) {cout << s[i];}else {char f = s[i];i++;while (i<m&&s[i] <= f) {cout << s[i];i++;}cout << f;i--;gg = true;}}else {cout << s[i];}}cout << endl;}return 0;
}

F.小红的区间修改(二)

 

 思路:

我一看到这题就想到了线段树,但要注意它那个a[i]的标记问题

if (a[i]==2 || (a[i * 2 + 1] ==2&& a[i * 2]==2)) {
        a[i] = 2;
    }
    else if (a[i]>0||a[i*2+1]>0||a[i*2]>0) {
        a[i] = 1;
    } 

这样在查找时可以方便判断

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[3000000];
int MAX = 1;
int Pan(int l,int r,int i,int x,int y) {if (x>=l&&y<=r) {return a[i]>0;}int mid = (x+y) / 2;if (a[i] == 2) {a[i * 2 + 1] = 2;a[i * 2] = 2;}bool pan = false;if (mid >= l) {pan = Pan(l, r, i * 2, x, mid)>0 ? true : pan;}if (pan) {return true;}if (mid+1 <= r) {pan = Pan(l, r, i * 2+1, mid+1, y)>0 ? true : pan;}return pan;
}
void Fu(int l, int r, int i, int x, int y) {if (x >= l && y <= r) {a[i] = 2;return ;}int mid = (x+y) / 2;if (mid >= l) {Fu(l, r, i * 2, x, mid);}if (mid + 1 <= r) {Fu(l, r, i * 2 + 1, mid+1, y);}if (a[i]==2 || (a[i * 2 + 1] ==2&& a[i * 2]==2)) {a[i] = 2;}else if (a[i]>0||a[i*2+1]>0||a[i*2]>0) {a[i] = 1;}
}
int main() {ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定int q, l, r;cin >> q;while(q--){cin >> l >> r;if (Pan(l, r, 1, 1, 300000)) {cout << MAX << endl;}else {Fu(l, r, 1, 1, 300000);MAX = MAX > r-l + 2 ? MAX :r-l + 2;cout << MAX << endl;}}return 0;
}

 

http://www.xdnf.cn/news/13005.html

相关文章:

  • ip子接口配置及删除
  • USB Over IP专用硬件的5个特点
  • webpack打包vue项目
  • 【大厂机试题解法笔记】食堂供餐
  • 进程间通信详解(一):管道机制与实现原理
  • PP-OCRv5 ubuntu20.04 OCR识别服务
  • 第三章 3.1 传感器安全
  • 代码随想录刷题day30
  • Invalid context structure解决Dify框架中图像推理错误:一步步排查与修复指南
  • 相机从app启动流程
  • helm使用说明和实例
  • 数据库分批入库
  • Vue 模板语句的数据来源
  • linux之 内存管理(6)-arm64 内核虚拟地址空间变化
  • Conda安装pytorch和cuda出现问题的解决记录
  • pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
  • Java多线程实现之Thread类深度解析
  • 【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
  • GeoDrive:基于三维几何信息有精确动作控制的驾驶世界模型
  • 快速使用 Flutter 的 Dialog 和 AlertDialog
  • Delivering Arbitrary-Modal Semantic Segmentation(CVPR2023)任意模态语义分割论文阅读
  • 基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
  • 如何把工业通信协议转换成http websocket
  • MongoDB 入门指南:安装、配置与 Navicat 连接教程
  • Vue3学习(接口,泛型,自定义类型,v-for,props)
  • 时间同步技术在电力系统中的应用
  • 水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
  • 达梦数据库CASE WHEN条件
  • Spring Boot 启动流程详解
  • 打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用