考试总结(橙题WA)
又逢校内测,成绩变化大
初见三道题,暗喜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)的更多相关文章
- 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零
期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...
- 考试宝典-真题园安卓AppV2.1.0新版发布啦,全新界面,全新体验,全面适配Android 5.0&6.0系统!
真题园移动客户端是真题园网 http://www.zhentiyuan.com 旗下的一款学习考试应用App. 1.全新适配Android5.0.6.0系统,重新优化架构网络通信模块. 2.全新清爽U ...
- C语言考试解答十题
学院比较奇葩,大一下期让学的VB,这学期就要学C++了,然后在开学的前三个周没有课,就由老师讲三个周的C语言,每天9:30~11:30听课,除去放假和双休日,实际听课时间一共是12天*2小时,下午是1 ...
- OCP 认证考试报名费技巧题库051052053解析合格线
本人于2017年4月22日通过参加OCP考试,第一次参加,一天之内考了三门,三门一次性通过,052 - 95% ,053 - 86% ,051 - 100% 一.关于考试考试报名费: 052:158$ ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- oj判题WA/RE怎么办
[转]POJ WA/RE指南 “POJ上头的题都是数学题”,也不知道是那个家伙胡诌的……但是POJ的要求就是算法通过了也不让你AC.下面本人就这560题的经验,浅谈一下WA/RE了怎么办. 以下内 ...
- 2019PAT春季考试第4题 7-4 Structure of a Binary Tree (30 分)
题外话:考试的时候花了一个小时做了27分,由于Siblings这个单词不知道意思,所以剩下的3分就没去纠结了,后来发现单词是兄弟的意思,气哭~~ 这道题的麻烦之处在于如何从一个字符串中去找数字.先首先 ...
- [考试]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...
- 复旦大学2015--2016学年第二学期(15级)高等代数II期末考试第六大题解答
六.(本题10分) 设 $n$ 阶复方阵 $A$ 的特征多项式为 $f(\lambda)$, 复系数多项式 $g(\lambda)$ 满足 $(f(g(\lambda)),g'(\lambda))= ...
随机推荐
- 转:xcode项目打不开:incompatible project version问题
这个是xcode版本对应不上,不一定要修改版本,我们修改记录版本的文件里面的版本号就行了. 低版本xcode打开高版本xcode项目或库工程的时候就会出现,打不开的问题 解决 1可以重建创建工程,将文 ...
- Linux学习 (2) CentOS 6 虚拟机挂载磁盘
1.我们先创建1台CentOS 6.10的虚拟机 2.使用SSH登陆CentOS虚拟机,运行下面的命令: sudo tail -f /var/log/messages ls -l /dev/sd* 可 ...
- ros局部路径规划-DWA学习
ROS的路径规划器分为全局路径和局部路径规划,其中局部路径规划器使用的最广的为dwa,个人理解为: 首先全局路径规划会生成一条大致的全局路径,局部路径规划器会把全局路径给分段,然后根据分段的全局路径的 ...
- Preface_英语
这是一本游戏指南.没错,你没有 看错,这就是一本游戏指南.当然,这 本指南针对的只是名为"英文"的游戏. 把英文和电子游戏比较一下,我们 会发现,这两者有惊人的相似之处. 第一,它 ...
- Mysql 查询表字段数量
select count(*) from information_schema.`COLUMNS` where TABLE_SCHEMA='dbName' -- 数据库名 and TABLE_NAME ...
- 【UOJ#48】【UR #3】核聚变反应强度(质因数分解)
[UOJ#48][UR #3]核聚变反应强度(质因数分解) 题面 UOJ 题解 答案一定是\(gcd\)除掉\(gcd\)的最小质因子. 而\(gcd\)的最小值因子一定是\(a_1\)的质因子. 所 ...
- 2019-9-18-WPF-如何调试-binding
原文:2019-9-18-WPF-如何调试-binding title author date CreateTime categories WPF 如何调试 binding lindexi 2019- ...
- linq,创建数据库,插入数据,newDB.CreateDatabase();newDB.tb2.InsertOnSubmit(stu); newDB.SubmitChanges();
using System.Data.Linq;using System.Data.Linq.Mapping; namespace ConsoleApplication1388{ class Progr ...
- 使用qwt作曲线图——有网格线背景的画法
创建自己的QwtPlot (1) 增加一个类比如curvePlotWidget,继承自QwtPlot (2)代码示例 curvePlotWidget::curvePlotWidget(QWid ...
- 浅谈cookie 和 session
一. cookie 定义:保存在浏览器本地上的一组组键值对 特点: 由服务器让浏览器进行设置的 浏览器保存在浏览器本地 下次访问时自动携带 应用: 登录 保存浏览习惯 简单的投票 使用cookie的原 ...