全部评论
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;
}
#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;
}
}
最多颜色的气球减去2,第二多的减去1,直到三个数字的和小于三,或者减完之后又负得,结果40%....
是不是应该continue ,而不是break
360一共几道编程题,难度如何
如果较小的两个数的2被小于等于c就输出两个数的和否则输出3个数的和整除3 a了
同40
难道?res+=Math.min(tem1,Math.min(tem2,(tem1+tem2)/3));
#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; } 想的是先找三个元素最小的 让三个元素都减去最小的,再让最大的除以二和次大的比较,
我也试过了全部数减去最小数后,只剩下两个数嘛啊a[0],a[1] 然后不断重复以下过程 排序,a[0]-2,a[0]-1,累加次数 直到a[0]-2<=0或者a[0]-1<=0,但是这种超时了
我也不知道为啥是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%。。。。。。更低了
先从低到高排序,然后 int count=0;count=a[0];if(a[1]>=1&&a[2]>=2),count++;a[1]-1;a[2]-2;再排序,重复,直到a[1]==0。我觉得这样应该可以ac,但是中间那些重复的代码偷懒复制粘贴了几行代码,变量名字没改过来,直到结束都没发现问题。。
0.3飘过,唉
我只有10%
break?
1,1, 4?
这和直接加起来除3求整有什么区别呢?
long来存
相关推荐
查看16道真题和解析 点赞 评论 收藏
分享
01-14 22:59
西安科技大学 Java
行云流水1971:这份实习简历的优化建议:
结构清晰化:拆分 “校园经历”“实习经历” 板块(当前内容混杂),按 “实习→校园→技能” 逻辑排版,求职意向明确为具体岗位(如 “市场 / 运营实习生”)。
经历具象化:现有描述偏流程,需补充 “动作 + 数据”,比如校园活动 “负责宣传” 可加 “运营公众号发布 5 篇推文,阅读量超 2000+,带动 300 + 人参与”;实习内容补充 “协助完成 XX 任务,效率提升 X%”。
岗位匹配度:锚定目标岗位能力,比如申请运营岗,突出 “内容编辑、活动执行” 相关动作;申请市场岗,强化 “资源对接、数据统计” 细节。
信息精简:删减冗余表述(如重复的 “负责”),用短句分点,比如 “策划校园招聘会:联系 10 + 企业,组织 200 + 学生参与,到场率达 85%”。
技能落地:将 “Office、PS” 绑定经历,比如 “用 Excel 整理活动数据,输出 3 份分析表;用 PS 设计 2 张活动海报”,避免技能单独罗列。
优化后需强化 “经历 - 能力 - 岗位需求” 的关联,让实习 / 校园经历的价值更直观。
若需要进一步优化服务,私信 点赞 评论 收藏
分享
