首页 > 其他分享 >D. Problem with Random Tests

D. Problem with Random Tests

时间:2022-10-27 17:45:36浏览次数:76  
标签:p2 Tests p1 cout s1 Random cin 字符串 Problem

传送门

题意:
给出一个字符串,然后,从这个字符串中取两个子串s1, s2,要求两个字符串的或最大


思路:
首先,先去s1从第一个非0开始取整段,记录第一个非0的位置为p1, 因为或位数越多越好,然后对于s2, s2的作用就是尽可能的取满足s1中0的位置,然后考虑s1中第一个为0的数,记录为p2, 要让这个数变为1,这个1只能从前面取, 因为后面的长度是不够的,所以只要枚举从p1 ~ p2 - 1为开始端,然后长度为n - p2即可,然后对于这个实现有两点,字符串如果为01类型的字符串可以直接或,异或,与操作,然后max函数也可以直接作用于字符串


总结:
字符串如果为01类型可以直接用位运算,max函数可以直接作用于字符串,substr(开始生成位置(默认为0), 生成的长度(默认到尾端))

点击查看代码
#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);
#define endl '\n'
using namespace std;

typedef long long ll;

int n;
string s;

int main()
{
    IOS; cin.tie(0), cout.tie(0);
    cin >> n;
    cin >> s;
    int p1 = s.find('1');
    if (p1 == -1)
        cout << "0" << endl, exit(0);
    int p2 = s.find('0', p1);
    string ret = s;
    for (int i = p1; i < p2; ++i)
    {
        string t = s;
        for (int j = i + n - p2 - 1, k = n - 1; j >= i; --j, --k)
            t[k] |= s[j];   
        ret = max(ret, t);    
    }
    cout << ret.substr(ret.find('1')) << endl;
    return 0;
}

标签:p2,Tests,p1,cout,s1,Random,cin,字符串,Problem
From: https://www.cnblogs.com/jumo-xiao/p/16833087.html

相关文章

  • LeetCode_LinkedList_138. Copy List with Random Pointer 复制带随机指针的链表(C++)【
    目录​​一,题目描述​​​​英文描述​​​​中文描述​​​​二,解题思路​​​​三,AC代码​​​​C++​​​​四,解题过程​​​​第一博​​一,题目描述英文描述Alinkedli......
  • [React] useEffect - problem: dependency is Object
    Let'ssaywehaveasimpleapplooklikethis:import{useEffect,useState}from"react";functionuseFetch(config){console.log("useFetchcall");cons......
  • 关于 problem.conf
    基本设置problem.conf中一行只能含有一个设置(不然可能会出现奇怪的错误?)use_builtin_judger大多数题的problem.conf里都要有use_builtin_judgeron这句话,这表示您需......
  • 中国(北方)大学生程序设计训练赛(第一周)(Problem E: Water Problem-矩阵快速幂)
    已知f(1),f(2),n,f(n+1)=f(n)+f(n-1)+sin(n*Pi/2),(n>=2)求f(n)矩阵快速幂,周期乘4个矩阵#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#incl......
  • BZOJ 2302([HAOI2011]Problem c-组合数学)
    Description给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了,就......
  • Random相关的
    官方释义:表示伪随机数生成器,这是一种能够产生满足某些随机性统计要求的数字序列的算法。(1)为什么叫做“伪随机数生成器”?Random本质上是利用一种算法,利用数学算法进行加密......
  • ARC139F Many Xor Optimization Problems
    题意:给定\(n,m\),求\(n\)个\([0,2^m)\)的数的最大异或和的和。瞎扯:考虑线性基,考虑消元后的,显然唯一,最大异或和为基内所有数的异或和。考虑大小为\(k\)的基方案数为......
  • D. Problem with Random Tests
    D.ProblemwithRandomTestsYouaregivenastring$s$consistingof$n$characters.Eachcharacterof$s$iseither$0$or$1$.Asubstringof$s$isaconti......
  • java----util常用类,1字符串转日期,2格式化类Format,3Random,4MD5,5Base64
    util常用类1.字符串转日期1.1Date/CalendarStringdateStr="2020-01-0110:00:00";jdk1.8之前与时间日期相关的类型有2个 java.util.Date  java.util.Calen......
  • 题解 For Problem. 完全参差序列
    Problem.完全参差序列题目背景2022年,南京师范大学迎来了120周年校庆,值此120周年校庆筹备工作全面启动之际,学校诚邀海内外校友、社会贤达、各界人士壬寅中秋相聚金陵,......