stl学习之旅 water也疯狂 之一

1_hdu_2734

#include<iostream>
#include<string>
using namespace std;
int main()
{    
    char ch;
    int sum=0;
    int i=1;
	while(cin.get(ch))
	{
		
		if(ch=='#') break;
		if(ch!='\n')
		  {
  			if(ch!=' ')
  			sum+=i*(ch-64);		
  		     i++;
  		}
  		if(ch=='\n')
  		{
		  	cout<<sum<<endl;
		  	sum=0;
		  	i=1;
	    }
	}
	return 0;
}

2_hdu_1328

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    int n;
    int t=0;
    while (cin>>n)
    {
        for (int j=0;j<n;j++)
        {

            cin>>s;
            cout<<"String #"<<++t<<endl;
            for (int i=0;i<s.size();i++)
            {
                if (s[i]=='Z')
                  {
                  	//cout<<s[i]<<endl;
                    cout<<"A";
                  }  
                else
                    cout<<char(s[i]+1);
            }
            cout<<endl<<endl;
        }
    }

    return 0;
}

3_hdu_1147

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> v;
	int n,a;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a;
		v.clear();
		for(int j=a;j;j/=2)
		{
			v.push_back(j%2?1:0);
		}
		int p=0;
		for(int i=0;i<v.size();i++)
		{
			if(v[i]==1)
			{
				
			   if(p==0)
		    	cout<<i;
		    	else
	     		cout<<" "<<i;
			
			    p=1;
			}
			
		}
		cout<<endl;
	}
	return 0;
}

4_hdu_1020

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int N;
	cin>>N;
	
	string s1,s2;
	int temp;
	
	for(int i=0;i<N;i++)
	{	
		cin>>s1;
		temp=0;
		s2=s1[0];
	//	cout<<s2<<endl;		
	//	cout<<s1.size()<<endl;
		for(int j=0;j<s1.size();j++)
		{
		    if(s2[0]==s1[j])
			{
				temp++;
				if(j==s1.size()-1)
			    {
				    if(temp==1)
					 cout<<s1[j]<<endl;
 					else
 					 cout<<temp<<s1[j];
 				}
			}
			else
			{				
			//	cout<<endl;
			//	cout<<s2[0]<<"         dadf    "<<endl;				
				if(temp==1)
				cout<<s2[0];
 				else
 			    cout<<temp<<s2[0];
				 s2[0]=s1[j];
				 
                if(j==s1.size()-1)
				 {
 					if(temp==1)
					 cout<<s2[0]<<endl;
 					else
 					cout<<temp<<s2[0];
 				 }
 				 
 				temp=1;
							
			}		
			
			
			
		}
		cout<<endl;
		s1="";
	}
	return 0;
}

5_poj_3438

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
    int N;
    cin>>N;    
    string s1,s2;
    int temp;
    
    for(int i=0;i<N;i++)
    {    
        cin>>s1;
        temp=0;
        s2=s1[0];   
        for(int j=0;j<s1.size();j++)
        {
            if(s2[0]==s1[j])
            {
                temp++;
                if(j==s1.size()-1)
                {
                   printf("%d%c",temp,s2[0]);
                }
            }
            else
            {         
                
                  printf("%d%c",temp,s2[0]);
                 s2[0]=s1[j];                 
                  if(j==s1.size()-1)
                 {
                   printf("%d%c",temp,s2[0]);
                  }
                  
                 temp=1;                            
            }            
            
        }
        
       printf("\n");
	
        s1="";
    }
    return 0;
}

6_zoj_2947

#include<iostream>
#include<string>
using namespace std;
int main()
{
   int N;int n;
   string a,b,s1,s2;
     
   cin>>N;
    
   for(int i=0;i<N;i++)
   {
   	    cin>>n;
     	for(int j=0;j<n;j++)
    	{
   	    	cin>>a;
     		s1+=a[0];	   	
        }
        cin>>n;
        for(int j=0;j<n;j++)
        {
        	cin>>b;
        	s2+=b[0];
        }
        if(s1==s2)
        cout<<"SAME"<<endl;
        else
        cout<<"DIFFERENT"<<endl;
   	
   	   s1="";
   	   s2="";
   	   
   }
   return 0;
   
}

9_poj_1477

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;//头文件
int main()
{
	int n;
	int t=0;
	while(cin>>n)
	{
	 if(n==0) break;

	int a[10000];
	int sum=0;
	int ave;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	ave=sum/n;
	int step=0;
	int cha=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]>ave)
		{
			cha=a[i]-ave;
			step+=cha;
		}
	 }
	 cout<<"Set #"<<++t<<endl;
	 cout<<"The minimum number of moves is "<<step<<"."<<endl;
	 cout<<endl;
	}
	return 0;
}
 

11_hdu_1321

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;//头文件
int main()
{
	string s;
	char ss[90];
	int n=0;
	while(cin.getline(ss,90))
	{
		if(n==0)n=1;
		else
		{		
	    	s=ss;
		    reverse(s.begin(),s.end());
	    	cout<<s<<endl;
		}
	}
	return 0;	
}
 

14_poj_1504

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;//头文件
int main()
{
    int N;
    cin>>N;
    string sa,sb,sc;
    char ssa[1000],ssb[1000];
    char s1[10000];
    char s2[10000];
    int a,b,p;
    int u=0;
    vector<int> v;
    for (int i=0;i<N;i++)
    {
        cin>>sa>>sb;//以string字符串进行输入
        int sum=0;
        int p=0;
        if (sa.size()<sb.size())
        {
            sc=sa;
            sa=sb;
            sb=sc;
        }
        strcpy(ssa,sa.c_str());
        strcpy(ssb,sb.c_str()); //将string转换成char
        for (int j=0;j<sa.size();j++)
        {
            s1[0]=ssa[j];
            //cout<<s1[0]<<endl;
            s2[0]=ssb[j];
            sscanf(s1,"%d",&a);
            sscanf(s2,"%d",&b);//将char转换成数字
            sum=a+b+p;
            a=0;
            b=0;
            p=sum/10;
            v.push_back(sum%10);
        }
        if (p==1)v.push_back(1);

        vector<int> ::iterator it;

        while (1)//去掉后面的0
        {
            it=v.end()-1;
            if (*it==0)
                v.erase(it);
            else
                break;

        }


        for (int j=0;j<v.size();j++)
        {

            if (u==0&&v[j]!=0) u=1;
            if (u==1)cout<<v[j];
        }
        cout<<endl;
        p=0;
        u=0;
        v.clear();
    }
    return 0;
}
//这道题主要是练习了一下数值转换,将string转换为数字
//14_poj_1504 


15_zoj_

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;//头文件
int main()
{
	vector<int > r;
	vector<int > g;
	vector<int > b;
	int n,m;
	int rr,gg,bb;
	int t=0;
	while(cin>>n>>m)
	{
		r.clear();
		g.clear();
		b.clear();
		if(n==0&&m==0) break;
		for(int j=0;j<n*m;j++)
		{
			cin>>rr;
			r.push_back(rr);
		}
		for(int j=0;j<n*m;j++)
		{
			cin>>gg;
			g.push_back(gg);
		}
		for(int j=0;j<n*m;j++)
		{
			cin>>bb;
			b.push_back(bb);
		}
		cout<<"Case "<<++t<<":"<<endl;;
		for(int p=0;p<n*m;p++)
		{
			cout<<(g[p]+b[p]+r[p])/3;
			if((p+1)%m==0)cout<<endl;
			else
			cout<<",";
		}
		
	} 
	return 0;
} 
//要理解题意
//http://acm.tzc.edu.cn/acmhome/problemdetail.do?method=showdetail&id=2984
 





 

 


 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值