• XJOI奋斗群蒻蒟群群赛7 RANK排名4

    • T1Bachgold Problem WA一次后AC

      • 题意
      • 分析过程
      • 给出题解
    • T2Parallelogram is Back WA一次后AC
      • 题意
      • 分析过程
      • 给出题解
    • T3Voting WA一次后AC
      • 题意
      • 分析过程
      • 给出题解
    • T4Secrets 已AC
      • 题意
      • 分析过程
      • 给出题解
    • T5Chips已AC
      • 题意
      • 分析过程
      • 给出题解
    • 蒻蒟的总结

—>XJOI奋斗群(蒻蒟群)群赛7<— RANK排名4

T1:Bachgold Problem (WA一次后AC)

题意:

给你一个数,让你把这个数拆成若干个质数,输出能够拆分成的质数的个数与所有的质数。

分析过程:

典型的水题,要想拆分的个数多,那么拆分成的质数一定要小。想到小的质数,就会想到2和3。所以只要判断给出的数是奇数还是偶数,如果是偶数,就输出n/2个2,如果是奇数,就输出n/2-1个2,再输出一个3就行了。然而错了一次,纯属失误,少打了它能够分成的质数的个数。

给出题解:
#include<bits/stdc++.h>
using namespace std;int main()
{int n,ans;cin>>n;if(n%2==0){ans=n/2;cout<<ans<<endl;for(int i=1;i<=ans;i++)cout<<2<<" ";}else {ans=(n-1)/2;cout<<ans<<endl;for(int i=1;i<=ans-1;i++)cout<<2<<" ";cout<<3;}
}

T2:Parallelogram is Back (WA一次后AC)

题意:

又是一道水题,简单来说,就是给你一个平行四边形的三个点,让你输出第四个点的可能的个数,并输出这几个点。

分析过程:

作为常识,一个平行四边形给出你三个点,第四个点共有三个位置可以选择。然后根据平行四边形的性质去求就行了。然而我还是错了一次,又是忘记打了个数,满心MMP。

给出题解:
#include<bits/stdc++.h>
using namespace std;int main()
{int x1,x2,x3,y1,y2,y3,x,y;cin>>x1>>y1>>x2>>y2>>x3>>y3;int chax,chay;cout<<3<<endl;chax=x1-x2;chay=y1-y2;x=x3+chax;y=y3+chay;cout<<x<<" "<<y<<endl;chax=x2-x3;chay=y2-y3;x=x1+chax;y=y1+chay;cout<<x<<" "<<y<<endl;chax=x3-x1;chay=y3-y1;x=x2+chax;y=y2+chay;cout<<x<<" "<<y<<endl;
}

T3:Voting (WA一次后AC)

题意:

简单来说,就是给你n个字母,分别是D和R,按顺序排,每个人可以干掉他之后的任意一个人,被干掉的人就不能做其他事了。让你求最后只剩下一个人时,是哪个字母留下。(当然,D的人会去干R,R也一样)。

分析过程:

刚开始想要用数组去解,结果发现比较难解决移除字母的操作,用BOOL型又会TLE,所以就想到了刚学的队列。只要设两个队列,一个用来存D,另一个存R。每次取出每个队列的首数据,进行比较,如果R的排名在D前,那么把D弹出队列,把R排到该队列队尾,重复这个操作,知道一个队列为空,另一个队列就是所求。

给出题解:
#include<bits/stdc++.h>
using namespace std;int main()
{char st[200010];queue <int> d,r;int n;cin>>n;scanf("%s",st);for(int i=0; i<n; i++){if(st[i]=='D')d.push(i);else r.push(i);}while(!r.empty()&&!d.empty()){int a = r.front();int b = d.front();if(a < b){r.pop();d.pop();r.push(a+n);}else{d.pop();r.pop();d.push(n+b);}}if(r.empty()==false) cout<<"R";else cout<<"D";return 0;
}

T4:Secrets (已AC)

题意:

首先有一堆硬币,面值是3的n次方:1,3,9,27……,然后给你一个数n,让你用硬币去换,条件是:
你用硬币要尽可能的大于n并且最接近n;
你用的硬币数量要尽可能的多;
问要多少个硬币换取。

分析过程:

简单来说,就是分这个数是否是3的倍数来写。如果不是三的倍数,就一直用3元去换。如果是三的倍数,就一直去寻找一个3^k的数,使得这个数不是3^k的倍数,然后用这个数去除以3^k+1,就是答案。

给出题解:
#include<bits/stdc++.h>
using namespace std;int main()
{long long int n,t;long long int cnt=0;cin>>n;if(n%3!=0){cnt=n/3+1;}else {t=3*3;while(t){if(n%t!=0){cnt=n/t+1;break;}else {t=t*3;}}}cout<<cnt;
}

T5:Chips(已AC)

题意:

给你一个n*n的矩阵,然后其中有一些坏点。你需要在边框上(不包括角落)放几个棋子,让他通过n-1次走到他的对面。同时,要满足在这个行进路程中,不能有一个点,两个棋子走到同一个格子,并且不能交换两个棋子(就是一行或一列里只能有一个棋子),而且棋子不能走到坏点上。让你求最大能够放的棋子的个数。

分析过程:

首先,它一旦给出一个换点,说明这个点所在的行和列都不能放棋子了(因为棋子只能直着走)。然后定义一个数组来判断每一行和列上是否有坏点,有就变成1,没有就为0。然后从i=2开始遍历到n-1(因为不包括角落),如果行和列加起来等于0(说明行和列都没有坏点)这时只需判断n的奇偶性和i的大小,当n为奇数,并且i=(n+1)/2,那么只能放一个棋子,其余的都能放两个棋子。如果行和列加起来等于1(说明行或列上只有一个坏点),那么就只能放一个棋子。如果加起来等于2(说明行和列上有两个坏点),就一个都不能放了。最后输出总共能放的棋子个数。

给出题解:
#include<bits/stdc++.h>
using namespace std;int main()
{long long int n,t;long long int cnt=0;cin>>n;if(n%3!=0){cnt=n/3+1;}else {t=3*3;while(t){if(n%t!=0){cnt=n/t+1;break;}else {t=t*3;}}}cout<<cnt;
}

蒻蒟的总结:

今天终于AK了一次了啊,虽然题目是有点简单的。不过还是有一点不好,就是AB这两道水题,我竟然都因为少打出了数据而WA了一次,真的是不甘心。(不过好像减了这40分的罚分,我还是第4的说)。所以下次绝对不能犯这样的错了,虽然说AB这种水题马上就要离我们而去了。
继续贴出吴老师的话:学信息的人永不服输!!!

czl蒻蒟的OI之路6相关推荐

  1. czl蒻蒟的OI之路

    XJOI奋斗群蒻蒟群群赛2 RANK排名3 T1Odds and Ends 已AC 题意 分析过程 给出题解 T2Tell Your World 已AC 题意 分析过程 给出题解 T3From Y t ...

  2. czl蒻蒟的OI之路8

    XJOI奋斗群蒻蒟群群赛9 RANK排名12 T1SnacktowerWA三次后AC 题意 分析过程 给出题解 T2The QueueWA六次后AC 题意 分析过程 给出题解 T3GarlandWA一 ...

  3. czl蒻蒟的OI之路9

    XJOI奋斗群蒻蒟群群赛10 RANK排名7 T1Chess TourneyWA一次后AC 题意 分析过程 给出题解 T2Luba And The TicketWA两次后AC 题意 分析过程 给出题解 ...

  4. czl蒻蒟的OI之路13

    XJOI奋斗群蒻蒟群群赛10 RANK排名6 T1Compote 已AC 题意 分析过程 给出题解 T2Decoding已AC 题意 分析过程 给出题解 T3Tram已AC 题意 分析过程 给出题解 ...

  5. czl蒻蒟的OI之路10、11、12

    好久没有发微博了表示自己也很绝望啊今天来个三连击 XJOI奋斗群蒻蒟群群赛11 RANK排名11 T1The Wall WA一次后AC 题意 分析过程 给出题解 T2Maximal Area Quad ...

  6. czl蒻蒟的OI之路5

    XJOI奋斗群蒻蒟群群赛6 RANK排名10 T1Fraction已AC 题意 分析过程 给出题解 T2Maxim Buys an Apartment WA两次AC 题意 分析过程 给出题解 T3Pl ...

  7. czl蒻蒟的OI之路3

    XJOI奋斗群蒻蒟群群赛4 RANK排名3 T1Arpa and a research in Mexican wave WA一次后AC 题意 分析过程 给出题解 T2Arpa and an exam ...

  8. czl蒻蒟的OI之路7

    XJOI奋斗群蒻蒟群群赛8 RANK排名 T1k-Factorization RE一次后AC 题意 分析过程 给出题解 T2Odd sumWA一次后AC 题意 分析过程 给出题解 T3Minimal ...

  9. czl蒻蒟的OI之路4

    XJOI奋斗群蒻蒟群群赛5 RANK排名15 T1Curriculum Vitae WA五次后AC 题意 分析过程 给出题解 T2Math Show WA十次后AC 题意 分析过程 给出题解 T3Fo ...

  10. czl蒻蒟的OI之路2

    XJOI奋斗群蒻蒟群群赛3 RANK排名7 T1Kirill And The GameTLE一次后AC 题意 分析过程 给出题解 T2Gleb And PizzaWA一次后AC 题意 分析过程 给出题 ...

最新文章

  1. block(六)循环引用-b
  2. Some Essential JavaScript Questions And Answers(5)
  3. 计算机应用技术编译原理考试题,《编译原理》练习题库含答案(大学期末复习资料).doc...
  4. java5.0下载_java虚拟机
  5. Java中的几种对象(PO、VO、DAO、BO、POJO)
  6. spring @Scheduled 注解实现的定时任务 3步走
  7. 创业,白手起家需要些什么?
  8. 子元素个数不定的垂直居中布局
  9. SpringBoot2注解配置定时任务和异步执行任务
  10. 【LeetCode】【字符串】题号:*14. 最长公共前缀
  11. python控制安捷伦频谱仪_安捷伦频谱仪使用说明
  12. 手机数字雨_cmd命令数字雨教程
  13. tampermonkey这玩意如何替换flash播放器为h5播放器?
  14. gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程
  15. 快速刷微信小程序访问量和浏览量
  16. Windows 10 word无法创建工作文件,找不到临时环境变量
  17. 2018年1月份最热门的JavaScript开源项目
  18. RAID磁盘阵列之RAID 5
  19. java anon_shiro中的anon,authc啥意思
  20. enumerate使用方法

热门文章

  1. 软件缺陷定位☞西门子数据集介绍
  2. 西门子——不同数据的存储方式
  3. Java JavaScript BOM和正则表达式
  4. JPK Data Processing AFM数据处理
  5. C++标准库——STL
  6. C++ 炼气期之基本结构语法中的底层逻辑
  7. 移动磁盘提示设备未就绪文件怎么恢复
  8. HTML、CSS——可伸缩式搜索框
  9. python定义一个人类_Python类和人类
  10. 数据分析---疫情数据可视化(地图)