今晚360编程第二题,请教

题目如下:



图片说明

我的代码如下:只过了40%,请教下还有什么情况未考虑

#实习#
全部评论
AC代码 #include<iostream> #include<vector> #include<algorithm> #include<cmath> using namespace std; int main() {     int t;     cin>>t;     while(t--)     {         vector<long long >color;         long long  ans=0,temp;         for(int i=0;i<3;++i)         {             cin>>temp;             color.push_back(temp);         }         sort(color.begin(),color.end());         ans+=color[0];         ans+=min((color[1]+color[2]-2*color[0])/3,color[1]);         cout<<ans<<endl;     }     return 0; }
点赞 回复 分享
发布于 2018-04-01 10:43
是不是应该continue ,而不是break
点赞 回复 分享
发布于 2018-03-31 21:33
最多颜色的气球减去2,第二多的减去1,直到三个数字的和小于三,或者减完之后又负得,结果40%....
点赞 回复 分享
发布于 2018-03-31 22:30
#include<iostream> #include <algorithm> using namespace std; //贪心法,先安排最多的 int main() { int n; cin >> n; int zushu[n]; for (int i = 0; i < n; ++i) { int result = 0; int col[3]; cin >> col[0] >> col[1] >> col[2]; //从小到大排好顺序 sort(col, col + 3); while ((col[0] + col[1] + col[2]) >= 3 && col[1] != 0 && col[0] >= 0) { if (col[2] >= 2) { col[2] -= 2; col[1] -= 1; result += 1; sort(col, col + 3); continue; } if (col[0] == 1 && col[1] == 1 && col[2] == 1) { result += 1; col[0] = 0; col[1] = 0; col[2] = 0; } } zushu[i] = result; } for (int m = 0; m < n; ++m) { cout << zushu[m] << endl; } }
点赞 回复 分享
发布于 2018-04-01 00:52
long来存
点赞 回复 分享
发布于 2018-03-31 21:25
这和直接加起来除3求整有什么区别呢?
点赞 回复 分享
发布于 2018-03-31 21:26
1,1, 4?
点赞 回复 分享
发布于 2018-03-31 21:27
break?
点赞 回复 分享
发布于 2018-03-31 21:27
我只有10%
点赞 回复 分享
发布于 2018-03-31 21:28
0.3飘过,唉
点赞 回复 分享
发布于 2018-03-31 21:29
先从低到高排序,然后 int count=0;count=a[0];if(a[1]>=1&&a[2]>=2),count++;a[1]-1;a[2]-2;再排序,重复,直到a[1]==0。我觉得这样应该可以ac,但是中间那些重复的代码偷懒复制粘贴了几行代码,变量名字没改过来,直到结束都没发现问题。。
点赞 回复 分享
发布于 2018-03-31 21:40
我也不知道为啥是40,后来改了后变为10,然后我就不懂了 我的思路是这样的比如40,30,50, 先排序得到50,40,30,然后所有数减去最小的数得到20,10,0,并且sum=30 判断如果(a[0]+a[1])/3>=1,则{       sum=sum+s; } 通过率40%,然后我发现我条件不够严谨,我就改了下 如果(a[0]+a[1])/3>=1,则{         如果a[0]<=2*a[1],则sum=sum+s;         否则sum=sum+a[1]; } 结果通过率只有10%。。。。。。更低了
点赞 回复 分享
发布于 2018-03-31 21:48
我也试过了全部数减去最小数后,只剩下两个数嘛啊a[0],a[1] 然后不断重复以下过程     排序,a[0]-2,a[0]-1,累加次数 直到a[0]-2<=0或者a[0]-1<=0,但是这种超时了
点赞 回复 分享
发布于 2018-03-31 21:52
#include<stdio.h> #include<malloc.h> #define MAX_SIZE    100 void BubbleSort_high(int *array); int getcount(int r_count, int g_count, int b_count); int getcount(int r_count, int g_count, int b_count) {     int count = 0;          count += r_count;     r_count -= count;     g_count -= count;     b_count -= count;     if((b_count / 2) >= g_count) {         count += g_count;     }else {         count += (b_count / 2);     }     return count; } int main(void) {     int n;     int i,j;     int array[MAX_SIZE][3];     scanf("%d", &n);     for(i = 0; i < n; i++) {         scanf("%d%d%d", &array[i][0],&array[i][1],&array[i][2]);     } //先对得到的每组三个数据排序,第一步找到最小的min3Num  所有的元素减去最小的元素, count = count + min3Num //第二步最大的元素max除以2,和第二大的元素secondMax比较,若大于 count = count + secondMax //max/2 <= secondMax, 那么就让count = count + max / 2; //我还是不知道哪里有问题啊 心态炸了 好绝望啊 是我打扰贵公司了 打扰了     for(i = 0; i < n; i++) {         BubbleSort_high(array[i]);         printf("%d\n", getcount(array[i][0], array[i][1], array[i][2]));     }     return 0; } 想的是先找三个元素最小的 让三个元素都减去最小的,再让最大的除以二和次大的比较,
点赞 回复 分享
发布于 2018-03-31 21:56
难道?res+=Math.min(tem1,Math.min(tem2,(tem1+tem2)/3));
点赞 回复 分享
发布于 2018-03-31 22:01
同40
点赞 回复 分享
发布于 2018-03-31 23:02
如果较小的两个数的2被小于等于c就输出两个数的和否则输出3个数的和整除3 a了
点赞 回复 分享
发布于 2018-04-01 00:03
360一共几道编程题,难度如何
点赞 回复 分享
发布于 2018-04-01 08:44

相关推荐

03-14 10:50
已编辑
门头沟学院 Java
鼠鼠华子无线实习,bg双九,通软岗位,论文,专利,竞赛都水过一点,秋招《非all&nbsp;in》选手,《泡池子泡到肿》选手,分享一下自己的时间线,给大家多一个参考。---实习末期,接口人电话沟通,最终决定求稳继续投递实习原部门---免机试,九月走完线下流程,开始入池---十月起开始保温,打听手中已拿offer,比较薪资,给出华子的预估职级和薪资(完全不给A的空间)---十月第二次保温,询问签约情况,各种暗示劝说留空白三方---十月底签约另一家公司,遂被降低优先级---十一月若干次常规保温信息(还有机会/稍晚一点/等这周。。。)---十二月告知部门有13的指标,愿意接受可以立刻发offer(难绷,妄图性...
蓦然回首一枝花:能体会楼主的心情,我投了华为无线的成研所,双9bg,被华子最后开了个13级的侮辱价 12.3打oc电话的时候接口人表示乐观等待就行,然后中间4周就开始不回消息或者拖四五天才回,翻来覆去就是“等审批结果”。 12月27号,我看应该是泡不出来了所以联系了部门流转,这时候接口人开始主动给我打电话告诉我马上就能出结果了,于是我也没继续流转。 12.31给我打电话说得降薪审批,薪资大概就是对应着13级的样子,但我当时因为投的是成都的,没有意识到薪资是按照上海开的,还以为这个薪资在成都是14级,加上那个时候我也“孝”劲上来了,想着能收我就行,于是答应了。 1.13开了出来,联系我了薪资,确认了下发现是13级,当时实在是接受不了,于是最终还是拒了。 拒的时候接口人告诉我说这个hc真的是他们争取了很久才争取到的,不过我一想到我12.3就打了oc电话,中间4周一直不搭理我或吊着我,最后12.31才告诉我争取不下来14级要降薪,也许争取真的要争取那么久吧,呵。 这个过程中也为华为拒了不少offer,大厂的、央企的、银行的都拒过,网上总说“华为没有发小奖状之前hr的话一个字都不要信”,当时没有放在心上,以为不会摊到我头上,现在来看当时也挺年轻气盛的。我感觉要不是中途我一直在烦hr,可能我就和楼主一样被泡死了吧,不过最后给开了个13级也和泡死没差,不过是被多侮辱了一次。 最后借楼主这个贴就只想跟后面的人提一个建议吧,还是那句说烂了的,“华为没有发小奖状之前hr的话一个字都不要信”,真的不要以为这样的情况不会出现在自己身上,不要拿自己的一辈子前途去送华为hr业绩。
点赞 评论 收藏
分享
落叶随风呀:学校不好就放两栏,专业能力往前移, 政治面貌不是党员不如不写,籍贯湖南衡阳,或者湖南,浅尝辄止 基本信息排版不够美观,没有对齐 简历上花里胡哨的东西去掉 项目我不评价,因为我能力有限,且对mcu了解不足 但是这份简历掌握的水平,你可以海投试试,工作没问题但是工资应该不会高,因为搞mcu的小公司多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务