记两个水题
来源:互联网 发布:恢复数据 英语 编辑:程序博客网 时间:2024/05/20 01:36
有n个人 要分成2-k个队 每两个队中的人互相打比赛 现在要将这些人分组使得比赛场数最多
思路:
就是把n个人分到k个组 尽量平均分配 然后计算 我是根据公示计算的
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <string>#define eps 1e-8#define op operator#define MOD 10009#define MAXN 100100#define INF 0x7fffffff#define MEM(a,x) memset(a,x,sizeof a)//#define ll __int64using namespace std;int a[10010];int main(){//freopen("ceshi.txt","r",stdin); int tc; scanf("%d",&tc); while(tc--) { int n,k; scanf("%d%d",&n,&k); for(int i=0;i<k;i++) { a[i]=n/k; } int b=n%k; int cnt=0; while(b) { a[cnt++]++; b--; }// cout<<"cnt "<<cnt<<endl; int sum=0; if(cnt==0) { sum=a[0]*a[0]*(k*(k-1)/2); printf("%d\n",sum); continue; } if(cnt==1) { sum+=a[0]*a[1]*(k-1);// sum+=a[0]*a[k-1]*cnt*(k-cnt); sum+=a[1]*a[1]*((k-1)*(k-2)/2); printf("%d\n",sum); continue; } if(cnt>1&&cnt<(k-1)) { sum+=a[0]*a[0]*(cnt*(cnt-1)/2); sum+=a[0]*a[k-1]*cnt*(k-cnt); sum+=a[k-1]*a[k-1]*((k-cnt)*(k-cnt-1)/2); printf("%d\n",sum); continue; } if(cnt==(k-1)) { sum+=a[0]*a[0]*(cnt*(cnt-1)/2); sum+=a[0]*a[k-1]*(k-1); printf("%d\n",sum); continue; } } return 0;}
有人想要买手机 根据他的6个朋友买手机的情况选择手机
首先选择手机牌子买的个数最多的 假如有好几个一样的 再选择价格最低的
同一个牌子的手机 可能会出现不同的价格 也选择价格最低的
map的简单应用
之前使用getline 不对
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <string>#include <map>#define eps 1e-8#define op operator#define MOD 10009#define MAXN 100100#define INF 0x7fffffff#define MEM(a,x) memset(a,x,sizeof a)//#define ll __int64using namespace std;map<string,int> m1;//记录手机的数量map<string,int> m2;//记录手机价格int main(){//freopen("ceshi.txt","r",stdin); string s1,s2; int c; string s[10]; for(int i=0;i<6;i++) {// getline(cin,s1);// getline(cin,s2); cin>>s1; cin>>s2; scanf("%d",&c);// getchar(); m1[s2]++; if(m1[s2]>1) { if(m2[s2]>c) m2[s2]=c; } else m2[s2]=c; s[i]=s2; } int num=-1; int pr=(int)1e6; string ans; for(int i=0;i<6;i++) { if(num<m1[s[i]]) { num=m1[s[i]]; pr=m2[s[i]]; ans=s[i]; } else { if(num==m1[s[i]]&&pr>m2[s[i]]) { pr=m2[s[i]]; ans=s[i]; } } } cout<<ans<<endl; return 0;}
0 0
- 记两个水题
- 两个几何水题ZOJ 1090 2540
- 积分赛第六次两个水题
- 2012天津现场赛两个水题
- 记两个文章
- 两个小算法题
- 笔试中的两个题
- 两个算法题
- 常识题两个
- 两个!!
- 两个
- 两个大数求和,一个ACM水题的C#求解
- CF 1A1B 两个水题(简单思维+细心)
- 编程题:给定两个集合,求两个集合的交集
- 听两个学术报告偶记
- 两个数据库的小题
- 简单题:读入两个参数
- 算法题/两个数组排序
- [leetcode]Find Minimum in Rotated Sorted ArrayII
- 测试
- UVa 11059 - Maximum Product
- 作业调度小软件
- IOS-NavigationController
- 记两个水题
- cURL使用之利用WeatherWebService获取天气预报
- hdu 2686 Matrix【最大费用流】
- 不如从现在来过
- AJAX中get和post请求详解
- Struts2多文件上传 Action关键代码
- 猜数
- tomcat源码分析二---将Tomcat构建到Eclipse中运行
- UVa 10976 - Fractions Again?!