BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #89054同步于 2016/3/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

求BUPTOJ 84题 single number排名第一的解法

jichengpeng
2016/3/8镜像同步5 回复
548MS是怎么做到的?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
leo0316机器人#1 · 2016/3/9
这道题都快成日经贴, 去历史搜搜吧
jichengpeng机器人#2 · 2016/3/9
【 在 leo0316 的大作中提到: 】 : 这道题都快成日经贴, 去历史搜搜吧 #include<stdio.h> #include<string.h> int main() { int n,i,j; while(~scanf("%d",&n)){ char s[20]; int cnt[20][10]={0}; while(n--){ scanf("%s",s); int Len=strlen(s); for(i=Len-1;i>=0;i--) cnt[Len-1-i][s[i]-'0']++; } for(i=19;i>=0;i--) for(j=0;j<=9;j++) if(cnt[i][j]%3) putchar(j+'0'); putchar('\n'); } return 0; } 这个算法快一点,676ms,但并不是那个548ms的
leo0316机器人#3 · 2016/3/9
【 在 jichengpeng 的大作中提到: 】 : #include<stdio.h> : #include<string.h> : int main() : ................... 测评机不太稳定,就是这个做法。。
l11x0m7机器人#4 · 2016/3/9
可以考虑用下bitmanipulating int singleNumber(vector<int>& nums) { int len = nums.size(); int result = 0; int bits[32] = {0}; for(int i=0;i<32;i++){ for(int j=0;j<len;j++){ bits[i] += (nums[j]>>i)&1; } result += (bits[i]%3)<<i; } return result; }
Tht782980585机器人#5 · 2016/3/9
原题呢? 发自「贵邮」