0801题解



#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>

using namespace std;

char a[11];
char b[11];

int main()
{
	scanf("%s %s",&a,&b);
	int sum1=0,sum2=0;
	int len1=strlen(a),len2=strlen(b);
	for(int i=0;i<len1;i++){
        sum1+=a[i]-'0';
	}
	for(int i=0;i<len2;i++){
        sum2+=b[i]-'0';
	}
	printf("%d\n",sum1*sum2);
	return 0;
}




#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>

using namespace std;

int a[5];
char s[100005];

int main()
{
	for(int i=1;i<=4;i++){
        scanf("%d",&a[i]);
	}
	scanf("%s",&s);
	int len=strlen(s);
	int ans=0;
	for(int i=0;i<len;i++){
        ans+=a[s[i]-'0'];
	}
	printf("%d\n",ans);
	return 0;
}



#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>

using namespace std;

int a[100005];
int dp[100005];

int main()
{
	int n;
	while(~scanf("%d",&n)){
        if(n==0) break;
        int sum=0,temp=-1000000009;
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
            sum+=a[i];
            if(sum>temp)
                temp=sum;
            dp[i]=temp;
            if(sum<0)
                sum=0;
        }
        int ans=-1000000009;
        sum=0;
        for(int i=n-1;i>0;i--){
            sum+=a[i];
            if(dp[i-1]+sum>ans)
                ans=dp[i-1]+sum;
            if(sum<0)
                sum=0;
        }
        printf("%d\n",ans);
	}
	return 0;
}



#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>

using namespace std;

struct Node{
    int id;
    int rating;
    int ans;
}r[300005];

int cmpr(Node a,Node b){
    return a.rating<b.rating;
}

int cmpd(Node a,Node b){
    return a.id<b.id;
}

int main()
{
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
        scanf("%d",&r[i].rating);
        r[i].id=i;
	}
	sort(r+1,r+n+1,cmpr);
	int temp=r[1].rating;
	for(int i=1;i<=n;i++){
        if(r[i].rating<=temp){
            r[i].ans=temp;
            temp++;
        }
        else{
            r[i].ans=r[i].rating;
            temp=r[i].rating+1;
        }
	}
	sort(r+1,r+n+1,cmpd);
	for(int i=1;i<n;i++)
        printf("%d ",r[i].ans);
    printf("%d\n",r[n].ans);
	return 0;
}


#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>

typedef long long ll;

using namespace std;

bool prime(ll x)
{
if (x%2 == 0) return false;
  for (ll j = 3; j*j <= x; j += 2)
    if (x%j == 0) return false;
  return true;
}

/*ll gcd(ll a,ll b){
    return b==0 ? a : gcd(b,a%b);
}*/
ll gcd(ll a,ll b)
{
  if(b==0) return a;
  a%=b;
  return gcd(b,a);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--){
        ll n;
        cin>>n;
        ll v=n,u=n+1;
        while(!prime(v)) v--;
        while(!prime(u)) u++;
        ll low=v*u*2;
        ll up=v*u-2*v-2*(u-n-1);
        ll g=gcd(low,up);
        up/=g,low/=g;
        printf("%I64d/",up);
        printf("%I64d\n",low);
        //cout << up << "/" << low << endl;
	}
	return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值