[NOIP1999] 普及组
回文数
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /*By SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 int read(){ 9 int x=0,f=1;char ch=getchar(); 10 while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();} 11 while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();} 12 return x*f; 13 } 14 int m; 15 char n[120]; 16 struct number{ 17 int a[300]; 18 int len; 19 }a,b; 20 number operator + (number a,number b){ 21 int len=max(a.len,b.len); 22 number c={0};c.len=len; 23 int tmp=0; 24 for(int i=1;i<=len+1;i++){ 25 c.a[i]=a.a[i]+b.a[i]+tmp; 26 tmp=c.a[i]/m; 27 c.a[i]%=m; 28 } 29 if(c.a[c.len+1])c.len++; 30 return c; 31 } 32 bool pd(number x){ 33 for(int i=1;i<=x.len/2;i++){ 34 if(x.a[i]!=x.a[x.len-i+1])return 0; 35 } 36 return 1; 37 } 38 int main(){ 39 int step=0; 40 scanf("%d",&m); 41 scanf("%s",n); 42 int i,j; 43 int slen=strlen(n); 44 for(i=0;i<slen;i++){ 45 a.len=i+1; 46 if(n[slen-i-1]>='0' && n[slen-i-1]<='9') 47 a.a[i+1]=n[slen-i-1]-'0'; 48 else a.a[i+1]=n[slen-i-1]-'A'+10; 49 } 50 while(step<=30){ 51 if(pd(a)){ 52 printf("STEP=%d\n",step); 53 return 0; 54 } 55 number b={0}; 56 b.len=a.len; 57 for(i=1;i<=b.len;i++) 58 b.a[i]=a.a[a.len-i+1]; 59 a=a+b; 60 step++; 61 } 62 printf("Impossible!\n"); 63 return 0; 64 }
回文数
导弹拦截
数据范围太小了,所以偷了懒,各种优化都没加
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 const int mxn=200; 9 int h[mxn]; 10 int ans=0; 11 int f[mxn],cnt; 12 int n=0; 13 int main(){ 14 while(scanf("%d",&h[n+1])!=EOF ) ++n; 15 int i,j; 16 for(i=1;i<=n;i++)f[i]=1; 17 for(i=1;i<=n;i++) 18 for(j=1;j<i;j++) 19 if(h[j]>=h[i])f[i]=max(f[i],f[j]+1); 20 ans=0; 21 for(i=1;i<=n;i++) ans=max(ans,f[i]); 22 printf("%d\n",ans); 23 //part 2 24 ans=cnt=0; 25 memset(f,0,sizeof f); 26 for(i=1;i<=n;i++){ 27 int mini=0x3f3f3f3f,pos=0; 28 for(j=1;j<=cnt;j++){ 29 if(f[j]>h[i] && f[j]<mini){ 30 mini=f[j]; 31 pos=j; 32 } 33 } 34 if(!pos){f[++cnt]=h[i];continue;} 35 f[pos]=h[i]; 36 } 37 printf("%d\n",cnt); 38 return 0; 39 }
导弹拦截
邮票面值设计
DP+搜索 这思路挺神的
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 #include<map> 8 using namespace std; 9 const int mxn=1000; 10 int m,k; 11 int a[mxn],cnt=0; 12 bool vis[mxn]; 13 int f[mxn]; 14 int mxans=0; 15 int ans[mxn]; 16 int DFS(int pos){ 17 memset(f,0,sizeof f); 18 int i,j; 19 for(i=1;i<=2000;i++){ 20 f[i]=0x3f3f3f3f; 21 for(j=1;j<=pos;j++){ 22 if(a[j]>i)continue; 23 f[i]=min(f[i],f[i-a[j]]+1); 24 } 25 if(f[i]>m)return i; 26 } 27 } 28 void dp(int pos){ 29 int tmp=DFS(pos); 30 // printf("tmp:%d pos:%d\n",tmp,pos); 31 if(tmp>mxans){ 32 mxans=tmp; 33 cnt=pos; 34 memcpy(ans,a,sizeof ans); 35 } 36 if(pos==k)return; 37 for(int i=tmp;i>a[pos];i--){ 38 a[pos+1]=i; 39 dp(pos+1); 40 } 41 return; 42 } 43 int main(){ 44 scanf("%d%d",&m,&k); 45 int i,j; 46 a[1]=1;cnt=1; 47 dp(cnt); 48 for(i=1;i<=cnt;i++){ 49 printf("%d ",ans[i]); 50 } 51 printf("\nMAX=%d\n",mxans-1); 52 return 0; 53 }
邮票面值设计
转载于:https://www.cnblogs.com/SilverNebula/p/5949950.html
[NOIP1999] 普及组相关推荐
- 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数
[题目链接] ybt 1309:[例1.6]回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 [题目考点] 1.高精度 ...
- 洛谷——P1014 [NOIP1999 普及组] Cantor 表
P1014 [NOIP1999 普及组] Cantor 表 题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , ...
- 洛谷 P1014 [NOIP1999 普及组] Cantor 表 | OpenJudge NOI 2.1 8760:Cantor表
[题目链接] 洛谷 P1014 [NOIP1999 普及组] Cantor 表 OpenJudge NOI 2.1 8760:Cantor表 [题目考点] 1. 二维数组 2. 找规律 3. 两下标间 ...
- 洛谷P1014题解 [NOIP1999 普及组] Cantor 表
原文地址:https://luvletter.blog.luogu.org/p1014-ti-jie P1014 [NOIP1999 普及组] Cantor 表 题目描述 现代数学的著名证明之一是 G ...
- P1015 [NOIP1999 普及组] 回文数 C语言实现
最近在做洛谷的一道回文数的题目时卡住了,但由于笔者只学习了C语言,于是想找一篇C语言写的博客学习一下.但无奈的是大多为C++或Python等语言,而且注释太少,用C++写的有的博客全局变量使用的太多, ...
- P1020 [NOIP1999 普及组] 导弹拦截(100+200+详细证明)
那么题意: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导 ...
- P1020 [NOIP1999 普及组] 导弹拦截 Dilworth定理 + dp
传送门 文章目录 题意: 思路: 题意: 思路: 对于第一问直接输出最长不严格下降子序列即可,第二问是Dilworth定理,变形比较多,之前也写过类似的,这里贴个证明. //#pragma GCC o ...
- 洛谷P1014 [NOIP1999 普及组] Cantor 表
现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 代码 import java.util.*; public class Main{pu ...
- 洛谷 - P1014 [NOIP1999 普及组] Cantor 表 [Java版]
题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/5 ...
最新文章
- 2018/-4-11遗传,差分进化,免疫,蚁群算法中的公式
- 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
- 044_Properties工具类
- 世界围棋人机大战、顶峰对决第一盘:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,Google AlphaGo首战告捷
- 10. Firewalls (防火墙 2个)
- HTTP和HTTPS详解
- 131_Power Query之获取钉钉日志自动刷新Power BI报告
- 城市发展规律及未来走向进行认知与预测的机构
- Flash务实主义——Loading
- Oracle中Lpad函数和Rpad函数的用法
- cocoStudio UI编辑器设置自定义字体
- 搭建jitsi的prosody出现的问题
- 一步一步实现WPF透明化窗口
- SpringBoot整合Graylog做日志收集
- 抽象代数之第一群同构定理的证明
- Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus
- The Frog Prince (青蛙王子) and Hello Kitty (凯蒂猫)
- Windows Server 2016修改Administrator的密码
- springboot猪场管理系统 毕业设计-附源码160901
- NetBean:6.0Can't create tunnel:系统找不到指的文件
热门文章
- Axios的基本使用
- 软考-信息系统项目管理师-信息系统安全管理
- 敏捷和DevOps词汇表
- 苹果mp3软件_神技能!!!音视频制作软件
- 融 360、中邮消费金融、作业帮分享数据分析产品选型心得
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
- Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with
- sealed、new、virtual、abstract与override 趣解
- pthread属性使用(转)
- 如果我要...(??版)