zoukankan      html  css  js  c++  java
  • HDU 2293

    http://acm.hdu.edu.cn/showproblem.php?pid=2293

            啥也不说了,一个简单的模拟让我弄成这样。

            注意两个地方:

                  1.  最后不能用时间递增来模拟过程,要先求出每人hp<=0的时间,通过对比时间来决定胜负,否则会超时。

                  2.  过程中的取模要放到循环中,每次的相乘都取模,否则会乘法溢出。

    代码:

    #include<iostream>
    #include
    <cstdio>
    #include
    <cstring>
    using namespace std ;
    int main(){
            
    int n ;
            cin 
    >> n ;
            
    int hp1, hp2, st1, st2, sp1, sp2 ;
            
    char str1[25], str2[25] ;
            
    while(n--){
                hp1
    =0; hp2=0; sp1=0; sp2=0 ;
                st1 
    = 1;
                st2 
    = 1 ;
                scanf(
    "%s%s"&str1, &str2) ;
                
    for(int j=0; j<strlen(str1); j++){
                    hp1 
    = (hp1+(83-str1[j])*(83-str1[j]))%97 ;
                    st1 
    = (st1*str1[j])%79 ;
                    
    for(int k=j+1; k<strlen(str1); k++)
                        sp1 
    = (sp1+str1[j]*str1[k])%11 ;
                }
                hp1 
    = 300 - hp1 ;
                st1 
    += 22 ;
                
    for(int j=0; j<strlen(str2); j++){
                    hp2 
    = (hp2+(83-str2[j])*(83-str2[j]))%97 ;
                    st2 
    = (st2*str2[j])%79 ;
                    
    for(int k=j+1; k<strlen(str2); k++)
                        sp2 
    = (sp2+str2[j]*str2[k])%11 ;
                }
                hp2 
    = 300 - hp2 ;
                st2 
    += 22 ;
                
    int n1, n2 ;
                n1 
    = hp2 / st1 ;
                n2 
    = hp1 / st2 ;
                
    if(hp2%st1!=0)    n1 ++ ;
                
    if(hp1%st2!=0)    n2 ++ ;
                n1 
    = n1 * (20-sp1) ;
                n2 
    = n2 * (20-sp2) ;
                
    if(n1>n2)   printf("lose\n") ;
                
    else
                
    if(n1==n2)  printf("tie\n") ;
                
    else   printf("win\n") ;
            }
            
    return 0 ;
        }
  • 相关阅读:
    springboot自动装配mybatisplus时,凭啥MybatisPlusAutoConfiguration比MybatisAutoConfiguration先装配
    mybatis 整合 spring 时,mapper 是怎么被设置必要的参数的
    canvas 画的线无法清除的问题
    大学英语单词 第二单元
    快乐纪中(二)2
    jzoj 2644. 数列
    jzoj【NOIP2011模拟10.31】T1游戏
    快乐纪中
    树形DP
    炮兵阵地
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2152914.html
Copyright © 2011-2022 走看看