P1087 FBI树 [2004普及]

这是个正常的、很简单的分治,然后我成功地将这个题搞成了一个贼难搞的东西

还是说一下我那个非常麻烦的思路:

  1. 建树  2. 后序遍历

然后就在建树的过程中死循环了,然后还一堆毛病

看了一个AC代码,该成这个了

#include<iostream>
#include<cstdio>
#include<cstring>
#define NUM 1010
#define rr register
using namespace std;
char a[NUM];
int n,cnt;void work( int l,int r ){
    int mid = (l+r+1) >> 1;
    if( l < r ){
        work( l,mid-1 );
        work( mid,r );
    }
    if( l == r ){
        if( a[l] == '0' ) cout << "B";
        else cout << "I";
        return;
    }
    bool yi = 0,ling = 0;
    for( int i = l;i <= r;i++ ){
        if( !yi && !ling ){
            if( a[i] == '1' ) yi = 1;
            else ling = 1;
        }else if( (yi && a[i] == '0') || (ling && a[i] == '1') ){
            cout << "F";
            return;
        }
    }
    if( yi ) cout << "I";
    else cout << "B";
    return;
}
int main(){
    ios::sync_with_stdio(0);
    cin >> n >> a;
    work( 0,strlen( a )-1 );
    return 0;
}

就是直接输出就好了,也不用存,

后序遍历就遍历吧,也是不难

推荐这些文章:

Lambda表达式[]中创建的变量,作用域在闭包内,但是生命周期和外部代码块相同

class A:
{
public:
A(int I = 0):i(I){ cout<<"constructor A"<<endl; }
~A() { cout << "distructor A" << endl; }
int getA(){ return i; }
private:
int i;
};

int main()
{
auto func = [a = std::make_unique<A>()]{
return a->...

编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若选民输错候选人姓名,则按废票处理。程序自动统计各候选人的得票结果,并按照得票数由高到低的顺序排序。最后输出各选票人得票结果和废票信息。

#include <iostream>#include <cstring>using namespace std;struct sign{ char name[20]; int num; int flag;}x[105],y[105],z[105];int main(){ int n; cin>>n; int i,j; for(i=1;i<=n;i++) { cin>>x[i].name; for(j=0;j<strlen(x[i].name);j++) { x[i].name[j]=tolower(x[i].name[j...

解决:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

yml或者properties文件没有被扫描到,需要在pom文件中<build></build>添加如下.来保证文件都能正常被扫描到并且加载成功.

<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</...

error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<' cout << a&&b <<endl错误

cout << a&&b <<endl这一行出现了这个错误
查了下是因为运算符优先级的问题,加个()就行了
cout << (a&&b) <<endl

 

...

最短hamilton路径

#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N=20,M=1<<N;int n;int w[N][N];int f[M][N];int main(){ cin>>n; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>w[i][j]; memset(f,0x3f,sizeof f); f[1][0]=0; for(int i=0;i...

AcWing 12. 背包问题求具体方案

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

const int N = 1010;

int f[N][N];
int v[N],w[N];
int main() {
int n,m;
cin >> n >> m;
for(int i = 1; i <= n; ++ i) cin >> v[i] >> w[i];
for(int i = n; i >...

opencv-cvCeil返回不小于参数的最小整数值

#include<opencv2/opencv.hpp>
#include<iostream>
#include <vector>

int main(int argc, char** argv) {

std::cout << "cvCeil(3.7) = " << cvCeil(3.7) << std::endl;
std::cout << "cvCeil(3.2) = " << cvCeil(3.2) << std::endl;
s...

opencv-cvFloor返回不大于参数的最大整数值

#include<opencv2/opencv.hpp>
#include<iostream>
#include <vector>

int main(int argc, char** argv) {

std::cout << "cvFloor(3.7) = " << cvFloor(3.7) << std::endl;
std::cout << "cvFloor(3.2) = " << cvFloor(3.2) << std::endl;
std::...

P3369 【模板】普通平衡树 vector+二分算法

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
vector <int> a;
vector <int>::iterator ita;
int main()
{
int q,n,x;
cin>>n;
for (int i=0;i<n;i++)
{
cin>>q>>x;
if (q==3)
{
ita=lower_bound(a.begin(),a.end(),x...

C++的新手,真心谢谢你们的帮助了。

问题
Activity 6
Write a program that asks the user for a number representing the day of the week and prints the name of the given day.

最佳回答

#include <iostream>
using namespace std;

int main()
{
int number;
cout<<"Please input the number: ";
cin&...

文章标题:P1087 FBI树 [2004普及]
文章链接:https://www.dianjilingqu.com/50827.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>