1047 vector
来源:互联网 发布:恺英网络王悦老婆是谁 编辑:程序博客网 时间:2024/06/16 06:21
这就是1039的反转,结果我还是超时了。。。
就没有学会用int存吗?不知道string很慢吗?
#include<iostream>#include<algorithm>#include<cstdio>#include<vector>#include<map>#include<set>using namespace std;int main(){ int n,k,a,b; string s; scanf("%d%d",&n,&k); vector<string> v[2505]; for(int i=0;i<n;i++){ cin>>s>>a; for(int j=0;j<a;j++){ cin>>b; v[b].push_back(s); } } for(int i=1;i<=k;i++){ //从1开始存的 int num=v[i].size(); cout<<i<<" "<<num<<endl; sort(v[i].begin(),v[i].end()); for(int j=0;j<num;j++) cout<<v[i][j]<<endl; } return 0;}对比满分代码;
按名字的字典序排course[ i ]里的数值,使 j 从0开始排的时候对应的值,刚好是名字字典序对应的下标
#include <cstdio>#include <vector>#include <algorithm>#include <string.h>using namespace std;char name[40010][5];vector<int> course[2510];bool cmp1(int a, int b) { return strcmp(name[a], name[b]) < 0;}int main() { int n, k; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++) { int cnt, temp; scanf("%s %d", name[i], &cnt); for(int j = 0; j < cnt; j++) { scanf("%d", &temp); course[temp].push_back(i); } } for(int i = 1; i <= k; i++) { printf("%d %d\n", i, course[i].size()); sort(course[i].begin(), course[i].end(), cmp1); for(int j = 0; j < course[i].size(); j++) { printf("%s\n", name[course[i][j]]); } } return 0;}
阅读全文
0 0
- 1047 vector
- vector
- vector
- Vector
- Vector
- vector
- vector
- VECTOR
- VECTOR
- VECTOR
- vector
- vector
- Vector
- vector
- vector
- vector
- Vector
- vector
- c和c++的区别
- 今日总结
- 关闭Oracle数据库/启动Oracle数据库
- [jQuery].取出一边的空格
- C#读取txt文本内容行数
- 1047 vector
- 删除小写字母字符串中重复字符
- netty源码分析(二)Netty对Executor的实现机制源码分析
- Android 属性动画
- HTML5入门01
- Java类集框架--Collection接口
- 正则
- 直接插入排序
- HDU6198 number number number 矩阵快速幂