USACO--2.1Sorting a Three-Valued Sequence
来源:互联网 发布:ipad pro毛笔字软件 编辑:程序博客网 时间:2024/05/18 00:20
我们可以知道最后排序以后的结果,也就是所有的1,2,3所处的位置;
所以我们可以预先统计1,2,3的数量,然后对于处在1位置的2,3我们先分别到他们各自应该处在的位置,寻找是否有1然后交换,如果没有再到别的位置寻找;处理完1后,我们再统计一下应该是2的位置上有多少3,就可以得到答案了。
代码如下:
/*ID: 15674811LANG: C++TASK: sort3*/#include<iostream>#include<cstdio>#include<cstring>#include<fstream>using namespace std;void swp(int &a,int &b){ int t=a; a=b; b=t;}int main(){ ofstream fout("sort3.out"); ifstream fin("sort3.in"); ///ifstream fin("lkl.txt"); int n; while(fin>>n) { int a[1010],num[4]; memset(num,0,sizeof(num)); for(int i=1;i<=n;i++) { fin>>a[i]; num[a[i]]++; } int cnt=0; for(int i=1;i<=num[1];i++) { if(a[i]==2) { cnt++; int j; for(j=num[1]+1;j<=num[1]+num[2];j++) if(a[j]==1) { swp(a[i],a[j]); break; } if(j>num[1]+num[2]) for(int d=num[1]+num[2]+1;d<=n;d++) if(a[d]==1) { swp(a[i],a[d]); break; } } if(a[i]==3) { cnt++; int j; for(j=num[1]+num[2]+1;j<=n;j++) if(a[j]==1) { swp(a[i],a[j]); break; } if(j>n) for(int d=num[1]+1;d<=num[1]+num[2];d++) if(a[d]==1) { swp(a[d],a[i]); break; } } } for(int i=num[1]+1;i<=num[1]+num[2];i++) { if(a[i]!=2) cnt++; } fout<<cnt<<endl; } return 0;}
1 0
- USACO 2.1 Sorting a Three-Valued Sequence
- USACO 2.1 Sorting a Three-Valued Sequence
- USACO--2.1Sorting a Three-Valued Sequence
- USACO 2.1 Sorting A Three-Valued Sequence
- USACO [2.1] Sorting a Three-Valued Sequence
- USACO 2.1-Sorting a Three-Valued Sequence
- USACO 2.1 Sorting a Three-Valued Sequence
- usaco training-Sorting a Three-Valued Sequence
- usaco: Sorting a Three-Valued Sequence
- USACO Sorting A Three-Valued Sequence (sort3)
- usaco Sorting a Three-Valued Sequence
- USACO-Sorting a Three-Valued Sequence
- USACO Sorting a Three-Valued Sequence
- 【USACO】【贪心】Sorting a Three-Valued Sequence
- USACO Sorting a Three-Valued Sequence
- USACO 2.1.3 Sorting A Three-Valued Sequence
- [USACO 2.1.3] Sorting a Three-Valued Sequence
- USACO section 2.1 Sorting a Three-Valued Sequence
- (转)设计模式六大原则(4):接口隔离原则
- MongoDB MapReduce 实战<2>
- android Scheme使用 打开指定的Activity
- leetcode Remove Nth Node From End of List
- 一厢情愿地为了压榨开发人员
- USACO--2.1Sorting a Three-Valued Sequence
- 国外软件外包项目网站(适用软件兼职)
- css 条件注释区分非IE浏览器
- LINK : fatal error LNK1123 (VS2010)
- Q-Learning的一个简单的教程
- oracle func_multi_like函数实现模糊匹配多个
- [Unity基础]unity脚本的生命周期
- 为Hadoop集群选择合适的硬件配置
- 详谈高端内存和低端内存