Codeforces Round #277 (Div. 2) 解题报告

2015-01-27 09:58:36 · 作者: · 浏览: 9

只会做3道。。TUT。。

A题:Calculating Function

水。每两项为1.对奇偶性分类讨论。

代码如下:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
           #include 
           
             #include 
            
              using namespace std; #define LL __int64 const int INF=0x3f3f3f3f; int main() { LL n, x; scanf("%I64d",&n); x=n/2; if(n&1) printf("%I64d\n",x-n); else printf("%I64d\n",x); return 0; }
            
           
         
        
       
      
     
    
   
  

B题:OR in Matrix

水。

把必须为0的填上,然后判断1的是否符合条件。若符合,让剩下的全为1输出,不符合就输出no。

代码如下:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
           #include 
           
             #include 
            
              using namespace std; #define LL __int64 const int INF=0x3f3f3f3f; int a[110][110], b[110][110]; int main() { int i, j, k, n, m, flag, flag1, flag2; scanf("%d%d",&n,&m); for(i=0; i
             
              
C题:Palindrome Transformation

先找出改变字母需要的步数,只在P所在的那半侧改变。

然后求出较小的移动的步数。累加即可。

代码如下:

#include 
               
                
#include 
                
                  #include 
                 
                   #include 
                  
                    #include 
                   
                     #include 
                    
                      #include 
                     
                       #include 
                      
                        #include 
                        #include 
                        
                          #include 
                         
                           using namespace std; #define LL __int64 const int INF=0x3f3f3f3f; char s[110000]; int judge(char c1, char c2) { int x; if(c1>c2) swap(c1,c2); return min(c2-c1,c1+26-c2); } int main() { int l, r, len, i, p, sum=0, flag=0; scanf("%d%d",&len,&p); p--; l=len-1; r=0; scanf("%s",s); for(i=0; i
                          
                           r-p) { sum+=r-l+abs(r-p); } else { sum+=r-l+abs(p-l); } printf("%d\n",sum); } return 0; }