又逢校内测,成绩变化大

初见三道题,暗喜AK辣

谁知数据毒,特判不到家

三题两题WA,心态已爆炸

T1(我不想再见到这道题):

附上多年前AC但是随便出(毒瘤)一组数据就可以卡掉的代码:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int a[];
int main()
{
int n,i;
cin>>n;
for(i=n;i>=;i--)
{
cin>>a[i];
}
for(i=n;i>=;i--)
{ if(a[i]!=)
{
if(i==n)
{
if(a[i]==||a[i]==-)
{
if(a[i]==)
cout<<"x^"<<i;
if(a[i]==-)
cout<<"-x^"<<i;
}
else
cout<<a[i]<<"x^"<<i;
}
if(i!=n&&i!=&&i!=)
{
if(a[i]==||a[i]==-)
{
if(a[i]==)
cout<<"+x^"<<i;
if(a[i]==-)
cout<<"-x^"<<i;
}
else if(a[i]>)
cout<<"+"<<a[i]<<"x^"<<i;
else if(a[i]<)
cout<<a[i]<<"x^"<<i;
}
if(i==)
{
if(a[i]==||a[i]==-)
{
if(a[i]==)
{
cout<<"+x";
}
if(a[i]==-)
{
cout<<"-x";
}
}
else if(a[i]>)
cout<<"+"<<a[i]<<"x";
else if(a[i]<)
cout<<a[i]<<"x";
}
if(i==)
{
if(a[i]>)
{
cout<<"+"<<a[i];
}
if(a[i]<)
{
cout<<a[i];
}
}
} }
return ;
}

这是之前的码风

这里的毒瘤数据指的是首项为零,(然鹅首项为零就不是n次不等式了...多虑导致WA)

越想越觉得得抽自己一巴掌...

T2:

世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根 据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150% (向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

AC了,且无需多言,上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m;
struct peo{
int id,sc;
}p[];
inline bool cmp(const peo &a,const peo &b){
if(a.sc!=b.sc) return a.sc>b.sc;
return a.id<b.id;
}
int main(){
//freopen("score.in","r",stdin);
//freopen("score.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d%d",&p[i].id,&p[i].sc);
sort(p+,p++n,cmp);
int name=int(m*1.5);
int line=p[name].sc;
while(p[name+].sc==line)
name++;
printf("%d %d\n",line,name);
for(int i=;i<=name;i++)
printf("%d %d\n",p[i].id,p[i].sc);
return ;
}

现在码风多好...不接受反驳

T3:

Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家。现在,他正在为一个细胞实 验做准备工作:培养细胞样本。 Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个第 i 种细胞经过 1 秒钟可以分裂为 Si 个同种细胞(Si 为正整数)。现在他需要选取某种细胞的一个放进培养皿,让其自由分裂, 进行培养。一段时间以后,再把培养皿中的所有细胞平均分入 M 个试管,形成 M 份样本, 用于实验。Hanks 博士的试管数 M 很大,普通的计算机的基本数据类型无法存储这样大的 M 值,但万幸的是,M 总可以表示为 m1的 m2 次方,其中 m1,m2 均为基本 数据类型可以存储的正整数。 注意,整个实验过程中不允许分割单个细胞,比如某个时刻若培养皿中有 4 个细胞, Hanks 博士可以把它们分入 2 个试管,每试管内 2 个,然后开始实验。但如果培养皿中有 5 个细胞,博士就无法将它们均分入 2 个试管。此时,博士就只能等待一段时间,让细胞们继 续分裂,使得其个数可以均分,或是干脆改换另一种细胞培养。 为了能让实验尽早开始,Hanks 博士在选定一种细胞开始培养后,总是在得到的细胞“刚 好可以平均分入 M 个试管”时停止细胞培养并开始实验。现在博士希望知道,选择哪种细 胞培养,可以使得实验的开始时间最早。

时间关系...

未AC代码(改天调):

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int n;
int m1,m2;
int s[];
inline int gcd(const int &a,const int &b){
if(b==) return a;
return gcd(b,a%b);
}
inline int numcnt(int t,int k){
int tot=;
while(t%k==){
t/=k;
tot++;
}return tot;
}
inline bool p(const int &nn){
for(int i=;i<=sqrt(nn);i++){
if(!(nn%i)) return ;
}return ;
}
int main(){
//freopen("data.in","r",stdin);
//freopen("cell.out","w",stdout);
scanf("%d",&n);
scanf("%d%d",&m1,&m2);
if(m1==){
cout<<<<endl;
return ;
}
for(int i=;i<=n;i++)
scanf("%d",&s[i]);
int tt=;
int pri[];
int numm[];
memset(numm,,sizeof(numm));
int ti=m1;
for(int i=;i<=ti;i++){
if(p(ti)){
pri[++tt]=ti;
break;
}
if(ti%i==)
pri[++tt]=i;
while(ti%i==){
ti/=i;
numm[i]++;
}
}
int minn=;
for(int i=;i<=n;i++){
if(gcd(s[i],m1)==)continue;
int maxn=;
bool ok=;
int tot=;
int sum=;
for(int j=;j<=tt;j++){
if(numcnt(s[i],pri[j])==){
ok=;
break;
}
int now=;
now=numm[pri[j]]*m2/numcnt(s[i],pri[j]);
if((numm[pri[j]]*m2)%numcnt(s[i],pri[j]))
now++;
maxn=max(maxn,now);
}
if(ok==)continue;
while(tot<maxn){
tot*=;
sum++;
}
minn=min(minn,sum+);
}
if(minn==)
printf("-1");
else
printf("%d",minn);
return ;
}

AC代码(天天%我但就是比我高的ych代码):

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<time.h>
#include<queue>
#include<stack>
using namespace std;
inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} //首先这道题显然是道数学题(要不然这数据怎么玩)
//样例1的解释启发我们这道题可以通过分解质因数做
//这个题其实条件等价于求a^x=k(m1^m2)的最小x值
//我们可以对两边进行分解质因数
//发现如果方程有解,则m1中不能包含a中没有的质因子
//但是a1的质因子可以比m1多
//那么最小的x就是找到最大的次数差值 struct prime
{
int cnt,pn[],t[];
}p,q;//一个储存题目给的条件,一个储存判断
int n,m1,m2;
inline void fenjie(int t,prime& p)//质因数分解2
{
p.cnt=;
for(int i=;i*i<=t;++i)
{
if(!(t%i))
{
p.pn[++p.cnt]=i;//记录第cnt个约数
p.t[p.cnt]=;
do
{
t/=i;
++p.t[p.cnt];//次数
}while(!(t%i));
}
} if(t>){
p.pn[++p.cnt]=t;
p.t[p.cnt]=;
}
}
int main(){
//freopen("cell.in","r",stdin);
//freopen("cell.out","w",stdout);
n=read(),m1=read(),m2=read();
if(m1==) return cout<<<<endl,;//先判断一波特殊情况
fenjie(m1,p);//把m1分解,存到p里
int ans,x;
ans=-;
for(int i=;i<=n;i++)
{
x=read();
fenjie(x,q);
int maxn=,nxt=;
//我们用nxt来存储x的下一个质因子的序号
bool flag=false;
if(q.cnt>=p.cnt)
//只有要求判断的数的质因子的个数>=题目给的条件的质因子的个数才能继续
for(int j=;j<=p.cnt;j++)//枚举m1的每一个质因子
{
while(q.pn[nxt]<p.pn[j]&&nxt<=q.cnt)++nxt;
if(nxt>q.cnt||q.pn[nxt]>p.pn[j])break;//如果没有这个质因子就跳出
int f=p.t[j]*m2/q.t[nxt];
if((p.t[j]*m2)%(q.t[nxt])) f++;
//让这两个次数相等,因为有可能不整除,所以还要判断一下,相当于向上取整
if(maxn<f)maxn=f;//求最大值
if(j==p.cnt) flag=; //标记答案
else flag=;
}
if(flag&&(ans==-||ans>maxn))ans=maxn;
}
printf("%d\n",ans);
return ;
}

考试时候写题解???EXM???

次日update

已AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int n;
int m1,m2;
int s[];
inline int gcd(const int &a,const int &b){
if(b==) return a;
return gcd(b,a%b);
}
inline int numcnt(int t,int k){
int tot=;
while(t%k==){
t/=k;
tot++;
}return tot;
}
int main(){
//freopen("cell.in","r",stdin);
//freopen("cell.out","w",stdout);
scanf("%d",&n);
scanf("%d%d",&m1,&m2);
for(int i=;i<=n;i++)
scanf("%d",&s[i]);
int tt=;
int pri[];
int numm[];
memset(numm,,sizeof(numm));
int ti=m1;
for(int i=;i<=ti;i++){
if(ti%i==)
pri[++tt]=i;
while(ti%i==){
ti/=i;
numm[i]++;
}
}
int minn=;
for(int i=;i<=n;i++){
int gc=gcd(m1,s[i]); //~~int gc=cxk;~~
int maxn=;
bool ok=;
int tot=;
int sum=;
for(int j=;j<=tt;j++){
if(numcnt(s[i],pri[j])==){
ok=;
break;
}
int now;
now=numm[pri[j]]*m2/numcnt(s[i],pri[j]);
if(numm[pri[j]]*m2%numcnt(s[i],pri[j]))
now++;
maxn=max(maxn,int(now));
}
if(ok==)continue;
minn=min(minn,maxn);
}
if(minn==)
printf("-1");
else
printf("%d",minn);
return ;
}

思路与上面的那位大佬一致,也是考试时的思路,代码与考试src基本一致,改了两行AC了,主要就是改进了取整运算,改正了关于minn的算法,可以看出许多变量是没有必要设的,甚至很多语句都是多余的,原因在于懒得删了急于AC,反正也A了嘛...

考试总结(橙题WA)的更多相关文章

  1. 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

    期末考试的编程题 返回   这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...

  2. 考试宝典-真题园安卓AppV2.1.0新版发布啦,全新界面,全新体验,全面适配Android 5.0&6.0系统!

    真题园移动客户端是真题园网 http://www.zhentiyuan.com 旗下的一款学习考试应用App. 1.全新适配Android5.0.6.0系统,重新优化架构网络通信模块. 2.全新清爽U ...

  3. C语言考试解答十题

    学院比较奇葩,大一下期让学的VB,这学期就要学C++了,然后在开学的前三个周没有课,就由老师讲三个周的C语言,每天9:30~11:30听课,除去放假和双休日,实际听课时间一共是12天*2小时,下午是1 ...

  4. OCP 认证考试报名费技巧题库051052053解析合格线

    本人于2017年4月22日通过参加OCP考试,第一次参加,一天之内考了三门,三门一次性通过,052 - 95% ,053 - 86% ,051 - 100% 一.关于考试考试报名费: 052:158$ ...

  5. HDU 2093 考试排名 模拟题

    解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...

  6. oj判题WA/RE怎么办

    [转]POJ WA/RE指南   “POJ上头的题都是数学题”,也不知道是那个家伙胡诌的……但是POJ的要求就是算法通过了也不让你AC.下面本人就这560题的经验,浅谈一下WA/RE了怎么办. 以下内 ...

  7. 2019PAT春季考试第4题 7-4 Structure of a Binary Tree (30 分)

    题外话:考试的时候花了一个小时做了27分,由于Siblings这个单词不知道意思,所以剩下的3分就没去纠结了,后来发现单词是兄弟的意思,气哭~~ 这道题的麻烦之处在于如何从一个字符串中去找数字.先首先 ...

  8. [考试]NOIP2015模拟题2

    // 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...

  9. 复旦大学2015--2016学年第二学期(15级)高等代数II期末考试第六大题解答

    六.(本题10分)  设 $n$ 阶复方阵 $A$ 的特征多项式为 $f(\lambda)$, 复系数多项式 $g(\lambda)$ 满足 $(f(g(\lambda)),g'(\lambda))= ...

随机推荐

  1. resharper 8.2

    用户名:ronle注册码:ZoJzmeVBoAv9Sskw76emgksMMFiLn4NM

  2. HDU-1760 A New Tetris Game DFS

    曾经,Lele和他姐姐最喜欢,玩得最久的游戏就是俄罗斯方块(Tetris)了. 渐渐得,Lele发觉,玩这个游戏只需要手快而已,几乎不用经过大脑思考. 所以,Lele想出一个新的玩法. Lele和姐姐 ...

  3. 成都,我们来啦 | Dubbo 社区开发者日

    [关注 阿里巴巴云原生 公众号,回复关键词"报名",即可参与抽奖!] 活动时间:10 月 26 日 13:00 - 18:00 活动地点:成都市高新区交子大道中海国际中心 233 ...

  4. C++回调,函数指针

    想要理解回调机制,先要理解函数指针 函数指针 函数指针指向的是函数而非对象,和其他指针一样,函数指针指向某种特定的类型 函数的类型由他的返回类型和参数类型共同决定,与函数名无关,如: bool len ...

  5. WPF-控件模板

    说起控件模板,还是因为在一次需求实现中,我碰到了一个圆形按钮.一开始我认知的按钮是方形灰不拉几的一个块儿.这如何实现一个圆形按钮? 我最先想到的是使用样式,可是发现根本就没有改变Button形状的属性 ...

  6. c# 调用接口返回json

    需要命名空间 using System.Net; using System.Net.Security using System.Security.Cryptography.X509Certificat ...

  7. Winform中对xml文件进行保存时空白节点自动换行问题的解决

    场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...

  8. 重温CLR(十七)程序集加载和反射

    本章主要讨论在编译时对一个类型一无所知的情况下,如何在运行时发现类型的信息.创建类型的实例以及访问类型的成员.可利用本章讲述的内容创建动态可扩展应用程序. 反射使用的典型场景一般是由一家公司创建宿主应 ...

  9. python数据挖掘介绍

    目录 一:什么是数据挖掘 二:数据挖掘的基本任务 三:数据挖掘流程 四:数据挖掘建模工具   在python对数据的处理方式中,数据挖掘和数据分析是两个重要的方式,目的是为了从数据中获取具有科研或者商 ...

  10. Lambda(一)lambda表达式初体验

    Lambda(一)lambda表达式初体验 Lambda引入 : 随着需求的不断改变,代码也需要随之变化 需求一:有一个农场主要从一堆苹果中挑选出绿色的苹果 解决方案:常规做法,source code ...