a  ZOJ 3860

求和大家不一样的那个数,签到,map水之

  1. #include<cstdio>
  2. #include<map>
  3. using namespace std;
  4. map<int,int> mp;
  5. int main(){
  6. int t,n,x;
  7. while(~scanf("%d",&t)){
  8. while(t--){
  9. scanf("%d",&n);
  10. mp.clear();
  11. while(n--){
  12. scanf("%d",&x);
  13. mp[x]++;
  14. }
  15. if(mp.begin()->second==){
  16. printf("%d\n",mp.begin()->first);
  17. }
  18. else{
  19. printf("%d\n",mp.rbegin()->first);
  20. }
  21. }
  22. }
  23. return ;
  24. }

ZOJ 3861

求输入的整数串有多少种合法的排列,枚举所有排列判断合法

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<map>
  5. #include<vector>
  6. #define mt(a,b) memset(a,b,sizeof(a))
  7. using namespace std;
  8. const int M=;
  9. int a[M];
  10. vector< vector<int> > ans;
  11. vector<int> v;
  12. int n;
  13. bool vis[M];
  14. bool good(int x,int y){
  15. if(x>y) swap(x,y);
  16. if(x==&&y==) return vis[];
  17. if(x==&&y==) return vis[];
  18. if(x==&&y==) return vis[];
  19. if(x==&&y==) return vis[];
  20. if(x==&&y==) return vis[];
  21. if(x==&&y==) return vis[];
  22. if(x==&&y==) return vis[];
  23. if(x==&&y==) return vis[];
  24. return true;
  25. }
  26. bool judge(){
  27. mt(vis,);
  28. for(int i=;i<n;i++){
  29. if(good(a[i-],a[i])){
  30. vis[a[i-]]=true;
  31. vis[a[i]]=true;
  32. }
  33. else return false;
  34. }
  35. return true;
  36. }
  37. int main(){
  38. int t;
  39. while(~scanf("%d",&t)){
  40. while(t--){
  41. scanf("%d",&n);
  42. for(int i=;i<n;i++){
  43. scanf("%d",&a[i]);
  44. }
  45. sort(a,a+n);
  46. ans.clear();
  47. do{
  48. if(judge()){
  49. v.clear();
  50. for(int i=;i<n;i++){
  51. v.push_back(a[i]);
  52. }
  53. ans.push_back(v);
  54. }
  55. }while(next_permutation(a,a+n));
  56. int la=ans.size();
  57. printf("%d\n",la);
  58. for(int i=;i<la;i++){
  59. for(int j=;j<n;j++){
  60. printf("%d%c",ans[i][j],j==n-?'\n':' ');
  61. }
  62. }
  63. }
  64. }
  65. return ;
  66. }

ZOJ 3862

有n个线段,知道每个线段端点的编号和坐标,每一步能交换一对编号的坐标,问能否在n+10步内使得所有线段不相交。

按点排序,x小,x相同y小,然后依次遍历,每次取两个点,若恰好是一对,无需操作,若不是一对,将第二个点与第一个点的对应点交换。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<map>
  5. #include<vector>
  6. #define mt(a,b) memset(a,b,sizeof(a))
  7. using namespace std;
  8. const int M=2e5+;
  9. struct point{
  10. int x,y;
  11. friend bool operator <(const point &a,const point &b){
  12. return a.x<b.x||(a.x==b.x&&a.y<b.y);
  13. }
  14. }p[M],s[M];
  15. int to[M];
  16. typedef pair<int,int> pii;
  17. map<pii,int> mp;
  18. vector<point> ans;
  19. int main(){
  20. int t,n,x,y;
  21. while(~scanf("%d",&t)){
  22. while(t--){
  23. scanf("%d",&n);
  24. int n2=n*;
  25. mp.clear();
  26. for(int i=;i<n2;i++){
  27. scanf("%d%d",&p[i].x,&p[i].y);
  28. s[i]=p[i];
  29. mp[make_pair(p[i].x,p[i].y)]=i;
  30. }
  31. sort(s,s+n2);
  32. for(int i=;i<n;i++){
  33. scanf("%d%d",&x,&y);
  34. x--;
  35. y--;
  36. to[x]=y;
  37. to[y]=x;
  38. }
  39. ans.clear();
  40. for(int i=;i<n2;i+=){
  41. point a=s[i];
  42. point b=s[i+];
  43. int aid=mp[make_pair(a.x,a.y)];
  44. int bid=mp[make_pair(b.x,b.y)];
  45. if(to[aid]==bid) continue;
  46. int cid=to[aid];
  47. mp[make_pair(p[cid].x,p[cid].y)]=bid;
  48. swap(p[bid],p[cid]);
  49. a.x=bid;
  50. a.y=cid;
  51. ans.push_back(a);
  52. }
  53. int la=ans.size();
  54. printf("%d\n",la);
  55. for(int i=;i<la;i++){
  56. printf("%d %d\n",ans[i].x+,ans[i].y+);
  57. }
  58. }
  59. }
  60. return ;
  61. }

end

The 15th Zhejiang University Programming Contest的更多相关文章

  1. ZOJ3865:Superbot(BFS) The 15th Zhejiang University Programming Contest

    一个有几个小坑的bfs 题目很长,但并不复杂,大概总结起来有这么点. 有t组输入 每组输入n, m, p.表示一个n*m的地图,每p秒按键会右移一次(这个等会儿再讲). 然后是地图的输入.其中'@'为 ...

  2. zoj 4020 The 18th Zhejiang University Programming Contest Sponsored by TuSimple - G Traffic Light(广搜)

    题目链接:The 18th Zhejiang University Programming Contest Sponsored by TuSimple - G Traffic Light 题解: 题意 ...

  3. The 16th Zhejiang University Programming Contest-

    Handshakes Time Limit: 2 Seconds      Memory Limit: 65536 KB Last week, n students participated in t ...

  4. The 19th Zhejiang University Programming Contest - H

    Princess Cjb is caught by Heltion again! Her knights Little Sub and Little Potato are going to Helti ...

  5. The 19th Zhejiang University Programming Contest Sponsored by TuSimple (Mirror) B"Even Number Theory"(找规律???)

    传送门 题意: 给出了三个新定义: E-prime : ∀ num ∈ E,不存在两个偶数a,b,使得 num=a*b;(简言之,num的一对因子不能全为偶数) E-prime factorizati ...

  6. The 19th Zhejiang University Programming Contest Sponsored by TuSimple (Mirror)

    http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=391 A     Thanks, TuSimple! Time ...

  7. 2019 The 19th Zhejiang University Programming Contest

    感想: 今天三个人的状态比昨天计院校赛的状态要好很多,然而三个人都慢热体质导致签到题wa了很多发.最后虽然跟大家题数一样(6题),然而输在罚时. 只能说,水题还是刷得少,看到签到都没灵感实在不应该. ...

  8. Mergeable Stack 直接list内置函数。(152 - The 18th Zhejiang University Programming Contest Sponsored by TuSimple)

    题意:模拟栈,正常pop,push,多一个merge A B 形象地说就是就是将栈B堆到栈A上. 题解:直接用list 的pop_back,push_back,splice 模拟, 坑:用splice ...

  9. 152 - - G Traffic Light 搜索(The 18th Zhejiang University Programming Contest Sponsored by TuSimple )

    http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5738 题意 给你一个map 每个格子里有一个红绿灯,用0,1表示 ...

随机推荐

  1. mariadb主从复制架构学习笔记

    复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 MySQL升级测试 在从服务器上有两个线程: I/O线程:从master请求二进制日志信息,并保存至中继日志 SQ ...

  2. Varint编码

    LevelDB内部通过采用变长编码,对数据进行压缩来减少存储空间,采用CRC进行数据正确性校验.下面就对varint编码进行学习. 传统的integer是以32位来表示的,存储需要4个字节,当如果整数 ...

  3. Android计时器TimerTask,Timer,Handler

    Android计时器TimerTask,Timer,若要在TimerTask中更新主线程UI,鉴于Android编程模型不允许在非主线程中更新主线程UI,因此需要结合Android的Handler实现 ...

  4. 获取android SDCard存储大小

    //File path = Environment.getDataDirectory();//手机内置空间 1.获取SD卡的路径 File path = Environment.getExternal ...

  5. PHP+MYSQL会员系统的开发实例教程

    本文通过一个简单的实例完成了完整的PHP+MySQL会员系统功能.是非常实用的一个应用.具体实现步骤如下: 一.会员系统的原理: 登陆-->判断-->保持状态(Cookie或Session ...

  6. java android 访问DELPHI 的DATASNAP

    最新版的DELPHI开发DATASNAP非常简单便捷,DataSnap的REST风格和对JSON的支持,使之成为服务器端开发的神器. 一.DATASNAP服务器中的方法: TServerMethods ...

  7. uC/OS-II之系统函数20160526

    任务管理 1 OSTaskCreate() 建立一个新任务.任务的建立可以在多任务环境启动之前,也可以在正在运行的任务中建立.中断处理程序中不能 建立任务.一个任务可以为无限循环的结构. 函数原型:I ...

  8. psql: 致命错误: 用户 "postgres" Ident 认证失败

    RedHat: 问题: psql -U postgres 时出现:psql: 致命错误:  用户 "postgres" Ident 认证失败 解决: 修改 /var/lib/pgs ...

  9. Datawarehouse

  10. android NDK开发环境搭建

    android NDK开发环境搭建 2012-05-14 00:13:58 分类: 嵌入式 基于 Android NDK 的学习之旅-----环境搭建 工欲善其事必先利其器 , 下面介绍下 Eclip ...