czl蒻蒟的OI之路6
- XJOI奋斗群蒻蒟群群赛7 RANK排名4
- T1Bachgold Problem WA一次后AC
- 题意
- 分析过程
- 给出题解
- T2Parallelogram is Back WA一次后AC
- 题意
- 分析过程
- 给出题解
- T3Voting WA一次后AC
- 题意
- 分析过程
- 给出题解
- T4Secrets 已AC
- 题意
- 分析过程
- 给出题解
- T5Chips已AC
- 题意
- 分析过程
- 给出题解
- 蒻蒟的总结
- T1Bachgold Problem WA一次后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相关推荐
- czl蒻蒟的OI之路
XJOI奋斗群蒻蒟群群赛2 RANK排名3 T1Odds and Ends 已AC 题意 分析过程 给出题解 T2Tell Your World 已AC 题意 分析过程 给出题解 T3From Y t ...
- czl蒻蒟的OI之路8
XJOI奋斗群蒻蒟群群赛9 RANK排名12 T1SnacktowerWA三次后AC 题意 分析过程 给出题解 T2The QueueWA六次后AC 题意 分析过程 给出题解 T3GarlandWA一 ...
- czl蒻蒟的OI之路9
XJOI奋斗群蒻蒟群群赛10 RANK排名7 T1Chess TourneyWA一次后AC 题意 分析过程 给出题解 T2Luba And The TicketWA两次后AC 题意 分析过程 给出题解 ...
- czl蒻蒟的OI之路13
XJOI奋斗群蒻蒟群群赛10 RANK排名6 T1Compote 已AC 题意 分析过程 给出题解 T2Decoding已AC 题意 分析过程 给出题解 T3Tram已AC 题意 分析过程 给出题解 ...
- czl蒻蒟的OI之路10、11、12
好久没有发微博了表示自己也很绝望啊今天来个三连击 XJOI奋斗群蒻蒟群群赛11 RANK排名11 T1The Wall WA一次后AC 题意 分析过程 给出题解 T2Maximal Area Quad ...
- czl蒻蒟的OI之路5
XJOI奋斗群蒻蒟群群赛6 RANK排名10 T1Fraction已AC 题意 分析过程 给出题解 T2Maxim Buys an Apartment WA两次AC 题意 分析过程 给出题解 T3Pl ...
- czl蒻蒟的OI之路3
XJOI奋斗群蒻蒟群群赛4 RANK排名3 T1Arpa and a research in Mexican wave WA一次后AC 题意 分析过程 给出题解 T2Arpa and an exam ...
- czl蒻蒟的OI之路7
XJOI奋斗群蒻蒟群群赛8 RANK排名 T1k-Factorization RE一次后AC 题意 分析过程 给出题解 T2Odd sumWA一次后AC 题意 分析过程 给出题解 T3Minimal ...
- czl蒻蒟的OI之路4
XJOI奋斗群蒻蒟群群赛5 RANK排名15 T1Curriculum Vitae WA五次后AC 题意 分析过程 给出题解 T2Math Show WA十次后AC 题意 分析过程 给出题解 T3Fo ...
- czl蒻蒟的OI之路2
XJOI奋斗群蒻蒟群群赛3 RANK排名7 T1Kirill And The GameTLE一次后AC 题意 分析过程 给出题解 T2Gleb And PizzaWA一次后AC 题意 分析过程 给出题 ...
最新文章
- block(六)循环引用-b
- Some Essential JavaScript Questions And Answers(5)
- 计算机应用技术编译原理考试题,《编译原理》练习题库含答案(大学期末复习资料).doc...
- java5.0下载_java虚拟机
- Java中的几种对象(PO、VO、DAO、BO、POJO)
- spring @Scheduled 注解实现的定时任务 3步走
- 创业,白手起家需要些什么?
- 子元素个数不定的垂直居中布局
- SpringBoot2注解配置定时任务和异步执行任务
- 【LeetCode】【字符串】题号:*14. 最长公共前缀
- python控制安捷伦频谱仪_安捷伦频谱仪使用说明
- 手机数字雨_cmd命令数字雨教程
- tampermonkey这玩意如何替换flash播放器为h5播放器?
- gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程
- 快速刷微信小程序访问量和浏览量
- Windows 10 word无法创建工作文件,找不到临时环境变量
- 2018年1月份最热门的JavaScript开源项目
- RAID磁盘阵列之RAID 5
- java anon_shiro中的anon,authc啥意思
- enumerate使用方法