T1 多项式输出 题目传送门

就是道模拟题咯

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
int n,k;
int main()
{n=read(); k=read();if(k!=1&&k!=-1) printf("%dx^%d",k,n);else{if(k==1) printf("x^%d",n);else printf("-x^%d",n);}for(int i=n-1;i;i--){k=read(); if(!k) continue;if(k>0) printf("+");if(k==-1) printf("-");if(k!=1&&k!=-1) printf("%d",k);if(i!=1) printf("x^%d",i);else printf("x");}k=read(); if(k){if(k>0) printf("+");printf("%d\n",k);}return 0;
}

View Code

T2 分数线划定 题目传送门

也算是道水题 sort一波就好了

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int M=5007;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
int n,m,cnt,mn;
struct node{int w,pos;}e[M];
bool cmp(node a,node b){return a.w!=b.w?a.w>b.w:a.pos<b.pos;}
int main()
{n=read(); m=read()*3/2; //printf("[%d]\n",m);for(int i=1;i<=n;i++) e[i].pos=read(),e[i].w=read();sort(e+1,e+1+n,cmp);mn=e[m].w; cnt=m;while(e[cnt+1].w==mn&&cnt<n) cnt++;printf("%d %d\n",mn,cnt);for(int i=1;i<=cnt;i++) printf("%d %d\n",e[i].pos,e[i].w);return 0;
}

View Code

T3 细胞分裂 题目传送门

这个要用到一个结论

我们将m1分解为一波质数之后可以求出m1由各个质数的几次方(设为h【i】)相乘得到

然后再把h【i】乘上m2

题目就转换成了 吧每个数拆成质数乘积 必须保证组成的质数与m1相同 而每个h【i】的倍数差最大就是这个数的k次方回事m1的m2次方的倍数

再求出所有k取最小值就是答案了

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define LL long long
using namespace std;
const int M=15007;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
int m1,m2,cnt,s[M],h[M];
int n,p,sum,v[M],ans=-1;
bool f;
void prepare(){int k=1;while(m1!=1){k++;if(m1%k==0){cnt++; s[cnt]=k;while(m1%k==0) h[cnt]++,m1=m1/k;h[cnt]=h[cnt]*m2;}}
}
int main()
{n=read();m1=read(); m2=read(); prepare();//for(int i=1;i<=cnt;i++) printf("[%d %d %d]\n",s[i],h[i]/m2,m2);for(int i=1;i<=n;i++) v[i]=read();for(int i=1;i<=n;i++){f=1; p=0;for(int j=1;j<=cnt;j++){if(v[i]%s[j]==0){sum=0;while(v[i]%s[j]==0) sum++,v[i]=v[i]/s[j];if(h[j]%sum==0) sum=h[j]/sum;else sum=h[j]/sum+1;if(sum>p) p=sum;}else{f=0;break;}}if(f&&(ans==-1||p<ans)) ans=p;}printf("%d\n",ans);return 0;
}

View Code

T4 道路游戏 题目传送门

这道题正解是dp 我们很容易想到枚举起点和步数 但是会很容易超时

这时我们发现有一些信息可以累加而不需要多次计算 这样就可以降低复杂度了 233

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int M=1507;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
int n,m,p;
int f[M],s[M][M],w[M],sum;
int main()
{n=read(); m=read(); p=read();for(int i=1;i<=n;i++) for(int j=1;j<=m;j++)s[i][j]=read();for(int i=1;i<=n;i++) w[i]=read();for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){int last=j-1>0?j-1:n;sum=s[last][i];for(int k=1;k<=p;k++){if(i-k<0) break;f[i]=max(f[i],f[i-k]-w[last]+sum);last=last-1>0?last-1:n;sum+=s[last][i-k];}}}printf("%d\n",f[m]);return 0;
}

View Code

转载于:https://www.cnblogs.com/lyzuikeai/p/7208492.html

noip2009 普及组相关推荐

  1. 信息学奥赛一本通 1180 | 1946:【09NOIP普及组】分数线划定 | OpenJudge NOI 1.10 05 | 洛谷 P1068 [NOIP2009 普及组] 分数线划定

    [题目链接] ybt 1180:分数线划定 ybt 1946:[09NOIP普及组]分数线划定 OpenJudge NOI 1.10 05:分数线划定 洛谷 P1068 [NOIP2009 普及组] ...

  2. NOIP2009 普及组 复赛 poly 多项式输出

    NOIP2009 普及组 复赛 poly 多项式输出 //洛谷 p1067 多项式输出 //难度:普及- //考点:输入,输出 ,输出格式按要求进行处理   //适用:小学生 //陷阱:要注意的条件比 ...

  3. 洛谷 P1070 [NOIP2009 普及组] 道路游戏 题解

    题目描述 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 �n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 �n 个机器人工 ...

  4. 多项式输出(NOIP2009 普及组第一题)

    描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi 称为i次项,ai称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1. 多项式中自变量为x, ...

  5. NOIP2009普及组细胞分裂(数论)——yhx

    题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...

  6. P1069 [NOIP2009 普及组] 细胞分裂

    传送门 题意: 给你m1,m2,现在有 M = m 1 m 2 M = m1^{m2} M=m1m2个试管,n种细胞,每种细胞经过1s可以分裂成 a i a^i ai个细胞,问你可以将细胞平均分配到M ...

  7. [NOIP2009 普及组] 细胞分裂

    #include <bits/stdc++.h> using namespace std; #define N 10005 #define INF 0x3f3f3f3f struct Po ...

  8. CSP-J (NOIP普及组) 历年复赛真题考察内容(1998~2021)

    TZOJ题目分类 本博客原文地址:https://www.cnblogs.com/BobHuang/p/14522022.html 其中,1.较简单题26题左右:2.动态规划17题,其中9题较好做:3 ...

  9. NOIP普及组第1题(1995-2018)

    NOIP1995普及组复赛第1题 https://blog.csdn.net/secret_zz/article/details/76862335 https://blog.csdn.net/WDAJ ...

最新文章

  1. php gd库画线,[PHP] GD库(十)绘制线段与圆弧 imageline、imagesetstyle 与 imagearc 函数...
  2. android点击弹出日期选择器,关于Android 点击按钮弹出日期选择器
  3. CMMI3组织级文档列表清单
  4. android notification自动消失,Notification点击事件和点击消失
  5. 2020年的海报设计,掌握7种风格,稳了
  6. Spring Boot(2) 配置文件
  7. 记录——《C Primer Plus (第五版)》第十章编程练习第十二题
  8. ios 相册 同时选择多张图片
  9. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(4)
  10. 汽车电子开发设计常用软件工具有哪些
  11. Oracle P6培训系列:10增加作业并估算工期
  12. 如何开发一门编程语言
  13. 腾讯业务安全岗 IDP 谈话总结
  14. JOptionPane和图标的用法
  15. html页面虚化,css实现背景虚化效果的示例代码
  16. IDEA查看Event log
  17. LabVIEW 将图表数据导出到Excel
  18. html学习基础(一)
  19. 智能网联汽车——网联化
  20. vs 给qt程序添加图标

热门文章

  1. cesium 加载网格
  2. pb数据窗口怎么调用视图_大数据架构如何做到流批一体?
  3. python怎么导入csv文件数据-机器学习Python实践——数据导入(CSV)
  4. 建立ssh隧道_快速掌握 SSH 端口转发,助力远程工作
  5. layer 一张表按钮根据一个id 查询相关信息
  6. linux ping不允许的操作,Alpine ping:不允许操作
  7. 6 设置限速_注意!全国高速将统一限速标志,这四种超速不再扣分罚款!
  8. dlna和miracast可以共存吗_Airplay、Miracast、DLNA传输原理的底层搭建
  9. mysql同步一段时间后失败_mysql 主从同步失败后
  10. mysql密码输入多次都不对_mysql 密码不对