2021-08-16

A:

#include<iostream>

#include<map>

#include<vector>

#include<string>

#include<stack>

using namespace std;

int main() {

    int n;

    cin >> n;

    map<charint> mp;

    for (int i = 0; i < n; i++) {

        char j;

        cin >> j;

        int y = 0;

        if (j == 'T') y = 1;

        mp[i + 'A'] = y;

    }

    string ss;

    stack<int> st;

    getchar();

    getline(cin, ss);

    int ans=-1;

    for (int i = 0; i < ss.length(); i++) {

        if (ss[i] == ' 'continue;

        if (ss[i] >= 'A' && ss[i] <= 'Z') {

            st.push(mp[ss[i]]);

        }

        if (ss[i] == '*') {

            int a, b;

            a = st.top();

            st.pop();

            b = st.top();

            st.pop();

            st.push(a & b);

        }

        if (ss[i] == '+') {

            int a, b;

            a = st.top();

            st.pop();

            b = st.top();

            st.pop();

            st.push(a | b);

        }

        if (ss[i] == '-') {

            int a, b;

            a = st.top();

            st.pop();

            st.push(a ^ 1);

        }

        if (!st.empty()) ans = st.top();

    }

    if (ans)

        cout << "T" << endl;

    else

        cout << "F" << endl;

    return 0;

}

B:

#include <bits/stdc++.h>

#define ll long long

using namespace std;

inline ll gcd(ll a,ll b) {

    ll r;

    while(b>0) {

        r=a%b;

        a=b;

        b=r;

    }

    return a;

}

int main(){

    ll a, b;

    cin >> a >> b;

    ll g = gcd(a, b);

    if(((a/g))&0x01&&((b/g)&0x01)){

        cout << g << endl;

    }else{

        cout << 0 << endl;;

    }

    system("pause");

    return 0;

}

C:

#include <iostream>

#include <cmath>

#include <algorithm>

#include <vector>

using namespace std;

int main()

{

    int p,d;

    int i,j;

    int x,m,n;

    int a[100005],b[100005];

    double aa=0.0,bb=0.0;

    double e=0.0;

    double v=0.0;

    cin>>p>>d;

    for (i=1;i<=p;i++)

    {

        cin>>x;

        cin>>m>>n;

        a[x]+=m;

        b[x]+=n;

        v=v+m+n;   

    }

    for (i=1;i<=d;i++)

    {

        if (a[i]>b[i])

        {

            cout<<"A"<<" ";

            int sum=a[i]-(floor((a[i]+b[i])/2)+1);

            cout<<sum<<" ";

            cout<<b[i]<<endl;

            aa+=sum;

            bb+=b[i];

        }

        else

        {

            cout<<"B"<<" ";

            int sum=b[i]-(floor((a[i]+b[i])/2)+1);

            cout<<a[i]<<" ";

            cout<<sum<<endl;

            aa+=a[i];

            bb+=sum;

        }

    }

    e=abs(aa-bb)/v;

    printf("%.10lf",e);

    return 0;

}

D:

#include<iostream>

#include<vector>

using namespace std;

int main() {

    int n;

    cin>>n;

    int max1=0;

    vector<int> v(201,0);

    for(int i=0;i<n;i++) {

        int x;

        cin>>x;

        v[x]++;

        max1=max(max1,x);

    }

    int f=1;

    for(int i=1;i<=max1;i++) {

        if(!v[i]) {

            f=0;

            cout<<i<<endl;

        }

             

    }

    if(f)

        cout<<"good job"<<endl;

    return 0;

}

G:

#include <iostream>

#include <cmath>

#include <cstring>

#include <algorithm>

#include <vector>

using namespace std;

bool cmp(double x,double y)

{

    return x>y;

}

int main()

{

    int i,j;

    int n;

    double p[105];

    double dp[105][105];

    double ans;

    memset(dp,0,sizeof(dp));

    cin>>n;

    for (i=1;i<=n;i++)

    {

        cin>>p[i];

        p[i]/=100;

    }

    sort(p+1,p+n+1,cmp);

//  for (i=1;i<=n;i++)

//  {

//      cout<<p[i]<<endl;  

//  }

    dp[0][0]=1;

    for (i=1;i<=n;i++)

        for (j=0;j<=i;j++)

        {

                   if(j==0)

                    {

                        dp[i][j]=dp[i-1][j]*(1-p[i]);

                    }

                    else

                    {

                        dp[i][j]=dp[i-1][j-1]*p[i]+dp[i-1][j]*(1-p[i]);

                    }

        }

        double maxn=0.0;

    for (i=1;i<=n;i++)

    {

        ans=0.0;

        for (j=1;j<=i;j++)

        {

            double t=(double)j/(double)i;

            double x1=pow(j,t);

//      printf("%.9lf\n",x1);

//      cout<<dp[n][j]<<endl;

            ans+=x1*dp[i][j];

        }

        if (ans-maxn>0.00000) maxn=ans;

    }

    printf("%.9lf",maxn);

    return 0;

}

J:

#include<bits/stdc++.h>

typedef long long ll;

using namespace std;

int main() {

    int n;

    cin >> n;

    vector<double> qz(n + 1, 0), hz(n, 0);

    double tt = 0;

    for (int i = 0; i <n; i++) {

        double x;

        cin >> x;

        qz[i + 1] = qz[i] + x;

        tt += x;

    }

    qz[n] = tt;

    int ec = 1, sc = 1;

    for (int i = 0; i < n; i++) {

        hz[i] = tt - qz[i ];

        //cout << qz[i + 1] << " " << hz[i] << endl;

        if ((double)((double)qz[i + 1] / (i + 1)*1.0) >= (double)(qz[ec + 1] / (ec + 1))*1.0)

            ec = i;

        if ((double)(hz[i] / (n - i)) > (double)(hz[sc] / (n - sc)))

            sc = i;

    }

    //cout << ec << " " << sc << endl;

    double ans =(double)(qz[ec + 1] + hz[sc]) / (double)(ec + 1 + n - sc)*1.0;

    if (ec >= sc) {

        ans = (double)(hz[sc] / (double)(n - sc)*1.0);

    }

     

    ans=max(ans,(double)(qz[ec+1]/(ec+1)));

    ans=max(ans,(double)(hz[sc])/(n-sc));

    if (ans < 0) ans = 0;

    //ans=double((double)2/(double)3*1.0);

    printf("%.9lf", ans);

    return 0;

}

K:

#include <bits/stdc++.h>

#define ll long long

using namespace std;

int main(){

    int ans = 0;

    set<char> se;

    string s;

    set<char> visit;

    cin >> s;

    int slen = s.length();

    for(int i = 0; i < slen; i++){

        se.clear();

        // if(visit.count(s[i]))

        //  se.clear();

        se.insert(s[i]);

        for(int j = i+1; j < slen && se.size() <27; j++){

            if(s[j] == s[i])

                break;

            if(se.count(s[j]))

                continue;

            ans++;

            se.insert(s[j]);

        }      

         

    }

    cout << ans;

    system("pause");

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值