• 【Gym


    Por Costel and Azerah

    Descriptions

    给你n个数 问你,有多少个子序列 的和是偶数 

    Example

    Input
    2
    3
    3 10 1
    2
    4 2
    Output
    3
    3
    题目链接
     
    恶心死了  

    freopen("azerah.in","r",stdin);
    freopen("azerah.out","w",stdout);

    必须加上 不然一直错  卡了我1小时

    直接看代码吧 挺水的

    AC代码

    #include <iostream>
    #include <cstdio>
    #include <fstream>
    #include <algorithm>
    #include <cmath>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <cstring>
    #include <map>
    #include <stack>
    #include <set>
    #include <sstream>
    #define IOS ios_base::sync_with_stdio(0); cin.tie(0);
    #define Mod 1000000007
    #define eps 1e-6
    #define ll long long
    #define INF 0x3f3f3f3f
    #define MEM(x,y) memset(x,y,sizeof(x))
    #define Maxn 1000010
    using namespace std;
    ll T,n;
    int main()
    {
        freopen("azerah.in","r",stdin);
        freopen("azerah.out","w",stdout);
        cin>>T;
        while(T--)
        {
            cin>>n;
            ll x;
            ll n1=0;//奇数个数
            ll n2=0;//偶数个数
            for(ll i=1; i<=n; i++)
            {
                cin>>x;
                if(x%2)
                    n1++;
                else
                    n2++;
            }
            ll s1=1;//奇数中的偶数子序列个数=2^(s1-1)-1
            ll s2=1;//偶数中的偶数子序列个数=2^s2-1
            //怕溢出,就一步一步循环吧
            for(ll i=1; i<=n2; i++)
            {
                s1*=2;
                s1%=Mod;
            }
            for(ll i=1; i<n1; i++)
            {
                s2*=2;
                s2%=Mod;
            }
            s1--;
            s2--;
            cout<<(s1+s2+s1*s2)%Mod<<endl;
        }
        return 0;
    }
  • 相关阅读:
    正则表达式和re模块
    面向对象基础
    面向对象高级
    网络编程
    collectiontimeossysjson模块
    继承
    封装
    我在吃饭
    111
    关于羽毛球拍
  • 原文地址:https://www.cnblogs.com/sky-stars/p/11229129.html
Copyright © 2020-2023  润新知