首页 > 代码库 > ·BC」 Round 12
·BC」 Round 12
很久没有做BC了,这次又是悲剧,1002到死都是WA,题目意思误解了,而且最后还忽略了一个问题
就是如果len==1 && str[0] == ‘-‘ 的情况。。悲剧致死。
HDU 5058 - So easy ( 这尼玛真的so easy )
我直接用了set,然后遍历。。
后来发现,,,,集合直接相等不就完了。。。果然stl用得不熟练。。作死。
/* ***********************************************ID : whiteblock63LANG : G++PROG : BC #12 1001DATE : 2014-10-05 18:56:48************************************************ */#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <set>#define CLR( a, b ) memset( a, b, sizeof(a) )using namespace std;set<int> S;set<int> T;int n, x;int main(){ while( ~scanf( "%d",&n) ){ S.clear(); T.clear(); for( int i = 1; i <= n; ++i ){ scanf("%d", &x); S.insert(x); } for( int i = 1; i <= n; ++i ){ scanf("%d", &x); T.insert(x); } int flag = 1; set<int>::iterator it1; set<int>::iterator it2; if( S.size() == T.size() ){ for( it1 = S.begin(), it2 = T.begin(); it1 != S.end(); it1++,it2++){ if(*it1 != *it2){ flag = 0; break; } } } else{ flag = 0; } if( flag ) puts("YES"); else puts("NO"); } return 0;}
#include <cstdio>#include <set>using namespace std;set<int> S, T;int n, x;int main(){ while( ~scanf( "%d",&n) ){ S.clear(); T.clear(); for( int i = 1; i <= n; ++i ){ scanf("%d", &x); S.insert(x); } for( int i = 1; i <= n; ++i ){ scanf("%d", &x); T.insert(x); } if( S == T ) puts( "YES" ); else puts( "NO" ); } return 0;}
HDU 5059 - Help him ( 这尼玛真的so 坑爹)
考虑问题要全面:
1. len > 11 ,就算是合法的数,数值也大于1E9
2. len = 0 , 空串、、、
3. len = 1, 但是 str[0] = ‘-‘
4. len = 1, str[0] = 0
5. others
/* ***********************************************ID : whiteblock63LANG : G++PROG : BC #12 1002DATE : 2014-10-05 19:14:47************************************************ */#include <cstdio>#include <cstring>#define CLR( a, b ) memset( a, b, sizeof(a) )using namespace std;char str[101];int n, x, l, r;bool judge(char* s){ int len = strlen(s); if( len > 11 ) return false; if( len == 0 ) return false; if( len == 1 && s[0] == ‘-‘ ) return false; if( ( s[0] < ‘0‘ || s[0] > ‘9‘ ) && s[0] != ‘-‘ ) return false; if( s[0] == ‘-‘ ){ if( s[1] == ‘0‘ ) return false; long long t = 0; for( int i = 1; i < len; ++i ){ if( s[i] < ‘0‘ || s[i] > ‘9‘ ) return false; t = t*10 + s[i] - ‘0‘; } t = -t; if( t >= l && t <= r ) return true; }else{ if( s[0] == ‘0‘ && len > 1 ) return false; long long t = 0; for( int i = 0; i < len; ++i ){ if( s[i] < ‘0‘ || s[i] > ‘9‘ ) return false; t = t*10 + s[i] - ‘0‘; } if( t >= l && t <= r ) return true; } return false;}int main(){ while( gets(str) ){ scanf( "%d %d",&l, &r ); getchar(); if( judge(str) ) puts( "YES" ); else puts( "NO" ); } return 0;}
·BC」 Round 12
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。