hdu 4891---水的问题 但WA非常多
2015-12-11 09:55
302 查看
这个问题是在一个坑----即使在使用long long 这将是超出范围
自己显得很长的时间去阅读很多次的称号仍然没想到
当时的想法是要记住----无论如何,我用long long 已经最大范围。当然不能用更大的类型--即使unsigned它是唯一的 比long long 大一倍。如今回头看,这样的想法太唯心,不是理性分析的结果啊,,
代码:
自己显得很长的时间去阅读很多次的称号仍然没想到
当时的想法是要记住----无论如何,我用long long 已经最大范围。当然不能用更大的类型--即使unsigned它是唯一的 比long long 大一倍。如今回头看,这样的想法太唯心,不是理性分析的结果啊,,
代码:
//1005 #include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib> #include <iostream> using namespace std; #define ll long long const ll lim=1e5; int main() { //freopen("hdu1005.txt","r",stdin); ll cnt,ans,kr,sp,n; char c; int last; bool flag=0; while(~scanf("%I64d",&n)) { flag=0; getchar(); cnt=kr=sp=0; ans=1; while(1) { c=getchar(); if(c == '\n')cnt++; if(cnt>=n || c==EOF)break; //{} if(c == '$') { kr=last=0; while(1) { c=getchar(); if(c == '\n'){cnt++;if(kr)last=1;continue;} if(c == ' ')kr++; //if(c != ' ' && c == '\n')conti if(c != ' ' && kr){if(ans>lim)flag=1;ans*=(kr+1);kr=0;} if(c == '$')break; } if(c != ' ' && kr){if(ans>lim)flag=1;ans*=(kr+1);kr=0;} //// } if(c == '{') { sp=0; while(1) { c=getchar(); if(c == '\n'){cnt++;} if(c == '|'){sp++;} if(c == '}')break; } if(ans>lim)flag=1; ans*=(sp+1); sp=0; } } if(ans>lim||flag)printf("doge\n"); else printf("%I64d\n",ans); } return 0; }
相关文章推荐
- 邮件发送的存储过程写法
- Java学习笔记----线程
- ros自定义动态消息发布(vector)
- 自动更新Android应用后, app 进入后台重进会重启
- 构建高性能web之路------mysql读写分离实战
- LeetCode 227 Basic Calculator II
- springmvc整合shiro权限控制
- Linux修改hostname导致无法解析主机错误
- 高仿糯米iOS客户端应用项目源码
- 新建一个去除storyboard的项目
- 丑数(各种丑数题的变形版本)
- textarea 换行之间的转换
- 详解BOM头以及去掉BOM头的方法
- Haproxy HTTPS VS Nginx HTTPS
- hdoj Find the maximum 4002 (欧拉函数&&大数打表)
- do {...} while (0) 在宏定义中的作用
- curl中CURLOPT_FOLLOWLOCATION属性的作用
- Oracle中varchar,varchar2,nvarchar,nvarchar2的区别
- 易便签客户端应用ios源码
- 找到两链表的第一个公共节点