首页 > 其他分享 >5.8 单调栈 & 悬线法 & 相关的题(和 dp 也多少沾点)

5.8 单调栈 & 悬线法 & 相关的题(和 dp 也多少沾点)

时间:2023-05-08 21:34:12浏览次数:45  
标签:沾点 finish 悬线法 5.8 len int flag printf

今日小题:一个 CF div2 的 A 的签到题,记录一下这个做法:

求一个字符串的最长非回文字符串:无解:长度为 1 或整个串每个字符都一样;有解:判断这个串是不是回文,如果不是,输出长度,如果是输出长度 - 1。感觉非常妙。不写证明,感觉非常好想...

#include<bits/stdc++.h>
using namespace std;
int T;
string s;
void finish()
{
    cin >> s;
    int len = s.size();
    int flag = 0;
    for(int i = 1; i < len; i ++ ) if(s[i] != s[i - 1]) {flag = 1;break;}
    if(! flag || len == 1)
    {
        printf("-1\n");
        return;
    }
    int i = 0, j = len - 1;
    while(i < j)
    {
        if(s[i] == s[j]) {i ++;j --;}
        else {flag = 0;break;}
    }
    if(! flag) printf("%d\n", len);
    else printf("%d\n", len - 1);
}
int main()
{
    scanf("%d", &T);
    while(T -- ) finish();
    return 0;
}

引入:用两个和这个没啥关系但可以思考的题引导。

P1387 最大正方形 

标签:沾点,finish,悬线法,5.8,len,int,flag,printf
From: https://www.cnblogs.com/Moyyer-suiy/p/17383210.html

相关文章

  • 5.8打卡
     二、设计思路 三、代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){inti;doublemoney=0.0;for(i=0;i<5;i++)money=(money+1000.0)/(1+0.0063*12);printf("Ó¦´æÈëµÄÇ®ÊýΪ£º%0.2f\n",money);} ......
  • 5.8推箱子游戏测试
    一推箱子游戏二代码与思路#include<iostream>usingnamespacestd;#include<stdlib.h>#include<conio.h>#defineWIDTH8//地图宽度#defineHEIGHT8//地图长度//定义地图后期会做多地图/*地图表示0空地1墙2人3箱子4箱子的目的地5到达目的地的箱子*/intmap[WIDTH][H......
  • 5.8每日总结
    今天上了软件工程课,在课上老师讲了团队绩效考核的一些评价标准和需要注意的一些问题,意识到了在团队中的自我价值要通过自己的表现去争取,之后将要开展第二轮的团队项目的冲刺,并布置了期末的任务,后来在课上老师组织我们进行了一些团队合作活动。接下来将会和小组成员讨论下一阶段......
  • 学习日记23.5.8
     今日学习sql:4小时学习了数据库的查询方面的知识:字符串匹配,以及两个新函数RTRIM(列名):功能是去掉指定列中尾随的空格,返回没有尾随空格的数据。substring():用于截取字符串,可从字符串的某一位置开始,向右截取若干个字符,返回一个特定长度的字符串substring('zhangsan',2)返回......
  • 5.8每日总结
    今天上了软件工程课,在课上老师讲了团队绩效考核的一些评价标准和需要注意的一些问题,意识到了在团队中的自我价值要通过自己的表现去争取,之后将要开展第二轮的团队项目的冲刺,并布置了期末的任务,后来在课上老师组织我们进行了一些团队合作活动。接下来将会和小组成员讨论下一阶段......
  • 2023.5.8编程一小时打卡
    一、问题描述:初始化int类型数组date1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20},应用本章的直接插入排序模板进行排序,对此函数模板稍作修改,加入输出语句,在每一个待排序元素后显示整个数组,观察排序过程中数据的变化,加深对插入排序算法的理解。二、解题思路:首先,定......
  • 2023.5.8
    1#include<iostream>2usingnamespacestd;3#include<fstream>4#include<iomanip>5voidtest()6{7intnum;8cout<<"请输入一个十进制整数:"<<endl;9cin>>num;10//十进制输出11cou......
  • 5.8
    一、问题描述:输出所有的“水仙花数”,所谓的“水仙花数”是指一个位数其各位数字的立方和等于该数本身,例如,153是“水仙花数”,因为153=1^3+1^3+3^3。二、设计思路:“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是100~999。对应的循环条件如下:for(n=100;n......
  • day67(2023.5.8)
    1.事件之绑定事件处理器 运行结果: 运行结果: 运行结果: 2.事件之鼠标事件 运行结果: 运行结果: 鼠标进入的时候,灰色块块出来,鼠标移开的时候,灰色块块隐藏。 运行结果: 运行结果: 运行结果: 3.事件之表单事件......
  • 5.8
    #include<stdio.h>inta[14];main(){inti,j=1,n;printf("魔术师手中的牌原始次序是:\n");for(i=1;i<=13;i++){n=1;do{if(j>13)j=1;if(a[j])j++;else{if(n==i)a[j]=i;j++;n++;}}while(n<=i);}for(i=1;i<=13;i++)printf("%d",a[i]);printf("\......