网站平台建设包括哪些,建设网站的工作步骤,网站建设与管理量化考细则,企业中英文网站开发传送门 #xff1a;B题#xff1a;点我 C题#xff1a; 点我 题目描述 有n个队伍#xff0c;每个队伍的人数小于等于5#xff0c;每辆车最多坐5个人#xff0c;要求一个队伍的人都在一辆车上#xff0c;求最少的车数 输入描述: 第一行n第二行n个数#xff0c;表示每个队…传送门 B题点我 C题 点我 题目描述 有n个队伍每个队伍的人数小于等于5每辆车最多坐5个人要求一个队伍的人都在一辆车上求最少的车数 输入描述: 第一行n第二行n个数表示每个队伍的人数 输出描述: 输出最少车数 示例1 输入 3
3 4 5 输出 3 备注: n≤1e5每个数小于等于5思路大力模拟。5自己一车4跟1一车然后3跟2一车2的时候分情况考虑如果2是偶数那么221或者22如果2是奇数那么分成偶数1最后一个2可以2111或者211或者21或者2最后处理1代码因为太长了就折叠了然后最后附上了一些测试数据 #include cstdio
#include cstring
#include cmath
#include cstdlib
#include ctime
#include iostream
#include algorithm
#include sstream
#include string
#include vector
#include queue
#include stack
#include map
#include set
#include utility
#include bitsetusing namespace std;
#define LL long long
#define pb push_back
#define mk make_pair
#define pill pairint, int
#define mst(a, b) memset(a, b, sizeof a)
#define REP(i, x, n) for(int i x; i n; i)
int main(){int n;scanf(%d,n);int a[6] {};for(int i 0 ; i n ; i){int x;scanf(%d,x);a[x];}int sum a[5];if(a[1] a[4]){sum a[4];a[1] - a[4];}else{sum a[4];a[1] 0;}if(a[2] a[3]){sum a[3];a[2] - a[3];}//如果2 比 3多 else{sum a[2];a[3] - a[2];a[2] 0;int t 2 * a[3];//a[3]可以带走多少a[1]if(a[1] t){sum a[3];a[1] - t;}else{sum a[3];a[1] 0;}}if(a[2] 0){int d1,d2;if(a[2] % 2 0){d1 a[2] / 2;if(a[1] d1){sum d1;a[1] - d1;}else{sum d1;a[1] 0;}}else{d1 a[2] / 2;d2 1;sum 1;//无论怎么样多出来这一个2肯定要一辆车if(a[1] d1){sum d1;a[1] - d1;}else{sum d1;a[1] 0;}if(a[1] 3){a[1] - 3;}else{a[1] 0;}}}if(a[1] ! 0){sum (a[1]%5 0 ? a[1]/5 : a[1]/5 1);}printf(%d\n,sum);
}
/*
9
1 1 2 2 2 3 3 3 4
54
1 1 1 1
16
1 2 3 4 5 2
47
2 2 2 2 1 1 1
36
2 2 2 2 1 1
27
1 2 2 2 2 2 3
35
4 4 4 4 1
45
4 4 4 2 1
46
4 4 4 2 1 3
47
1 2 2 2 3 4 5
46
1 1 1 3 4 5
3
*/ View Code C题 出队 是个CF原题额就是换了个题面。http://codeforces.com/contest/950/problem/D 题目描述 约瑟夫问题(https://baike.baidu.com/item/约瑟夫问题)n个人1 2报数 1出队( 就是体育课的时候1 2报数 1出队2留下)q次询问每次求第x个人是第几个出队的 输入描述: 第一行两个数n,q接下来q行每行一个数x表示询问 输出描述: 一行输出一个询问的答案 示例1 输入 4 3
2
3
4 输出 3
2
4 说明 1 2 3 4围成一圈第一轮1 2报数1出队2留下3出队4留下第二轮2出队4留下 备注: q≤500000n和x≤1e18代码 #includestdio.h
typedef long long ll;
int main()
{ll n,m,x;scanf(%lld%lld,n,m);while(m--){scanf(%lld,x);while(x%20)xnx/2;printf(%lld\n,(x1)/2);}return 0;
} 转载于:https://www.cnblogs.com/Esquecer/p/9026710.html