0801题解

来源:互联网 发布:二维旋转矩阵的推导 编辑:程序博客网 时间:2024/06/16 18:12



#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;}




0 0
原创粉丝点击