iNOC产品部-杨辉三角的变形(第二种方法也可以通过,测试数据太弱,n>10000就会爆的)

来源:互联网 发布:java工作流引擎 编辑:程序博客网 时间:2024/05/07 15:08
// iNOC产品部-杨辉三角的变形(第二种方法也可以通过,测试数据太弱,n>10000就会爆的) #include<bits/stdc++.h>using namespace std;int F(int n,int k){    if(k==1||k==2*n-1)return 1;    if(k<1||k>2*n-1)return 0;    return F(n-1,k)+F(n-1,k-1)+F(n-1,k-2);}int main(){    int n;    while(cin>>n)    {        for(int i=1; i<=2*n-1; i++)        {            if(F(n,i)%2==0)            {                cout<<i<<endl;                break;            }            else if(i==2*n-1)            {                cout<<"-1"<<endl;            }        }    }    return 0;}#include<bits/stdc++.h>using namespace std;int main(){    int n;    while(cin>>n)    {        if(n==1||n==2)cout<<"-1"<<endl;        else        {            vector<int>v1;            for(int i=0; i<3; i++) v1.push_back(1);            for(int i=2; i<n; i++)            {                vector<int>v2(v1.size()+2);                v2[0]=1;                v2[1]=i;                v2[v2.size()-1]=1;                v2[v2.size()-2]=i;                for(int j=2; j<=v2.size()-3; j++)                {                    int sum=0;                    for(int k=0; k<3; k++)                    {                        sum+=v1[k+j-2];                    }                    v2[j]=sum;                }                v1.push_back(0);                v1.push_back(0);                for(int m=0; m<v2.size(); m++) v1[m]=v2[m];            }            int i;            for(i=0; i<v1.size(); i++)            {                if(v1[i]%2==0)                {                    cout<<i+1<<endl;                    break;                }            }            if(i==v1.size())cout<<"-1"<<endl;        }    }    return 0;}
阅读全文
0 0
原创粉丝点击