回文数

 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 }

回文数

导弹拦截

数据范围太小了,所以偷了懒,各种优化都没加

 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+搜索 这思路挺神的

 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] 普及组相关推荐

  1. 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数

    [题目链接] ybt 1309:[例1.6]回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 [题目考点] 1.高精度 ...

  2. 洛谷——P1014 [NOIP1999 普及组] Cantor 表

    P1014 [NOIP1999 普及组] Cantor 表 题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , ...

  3. 洛谷 P1014 [NOIP1999 普及组] Cantor 表 | OpenJudge NOI 2.1 8760:Cantor表

    [题目链接] 洛谷 P1014 [NOIP1999 普及组] Cantor 表 OpenJudge NOI 2.1 8760:Cantor表 [题目考点] 1. 二维数组 2. 找规律 3. 两下标间 ...

  4. 洛谷P1014题解 [NOIP1999 普及组] Cantor 表

    原文地址:https://luvletter.blog.luogu.org/p1014-ti-jie P1014 [NOIP1999 普及组] Cantor 表 题目描述 现代数学的著名证明之一是 G ...

  5. P1015 [NOIP1999 普及组] 回文数 C语言实现

    最近在做洛谷的一道回文数的题目时卡住了,但由于笔者只学习了C语言,于是想找一篇C语言写的博客学习一下.但无奈的是大多为C++或Python等语言,而且注释太少,用C++写的有的博客全局变量使用的太多, ...

  6. P1020 [NOIP1999 普及组] 导弹拦截(100+200+详细证明)

    那么题意: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导 ...

  7. P1020 [NOIP1999 普及组] 导弹拦截 Dilworth定理 + dp

    传送门 文章目录 题意: 思路: 题意: 思路: 对于第一问直接输出最长不严格下降子序列即可,第二问是Dilworth定理,变形比较多,之前也写过类似的,这里贴个证明. //#pragma GCC o ...

  8. 洛谷P1014 [NOIP1999 普及组] Cantor 表

    现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 代码 import java.util.*; public class Main{pu ...

  9. 洛谷 - P1014 [NOIP1999 普及组] Cantor 表 [Java版]

    题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/11/1 , 1/21/2 , 1/31/3 , 1/41/4, 1/5 ...

最新文章

  1. 2018/-4-11遗传,差分进化,免疫,蚁群算法中的公式
  2. 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
  3. 044_Properties工具类
  4. 世界围棋人机大战、顶峰对决第一盘:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,Google AlphaGo首战告捷
  5. 10. Firewalls (防火墙 2个)
  6. HTTP和HTTPS详解
  7. 131_Power Query之获取钉钉日志自动刷新Power BI报告
  8. 城市发展规律及未来走向进行认知与预测的机构
  9. Flash务实主义——Loading
  10. Oracle中Lpad函数和Rpad函数的用法
  11. cocoStudio UI编辑器设置自定义字体
  12. 搭建jitsi的prosody出现的问题
  13. 一步一步实现WPF透明化窗口
  14. SpringBoot整合Graylog做日志收集
  15. 抽象代数之第一群同构定理的证明
  16. Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus
  17. The Frog Prince (青蛙王子) and Hello Kitty (凯蒂猫)
  18. Windows Server 2016修改Administrator的密码
  19. springboot猪场管理系统 毕业设计-附源码160901
  20. NetBean:6.0Can't create tunnel:系统找不到指的文件

热门文章

  1. Axios的基本使用
  2. 软考-信息系统项目管理师-信息系统安全管理
  3. 敏捷和DevOps词汇表
  4. 苹果mp3软件_神技能!!!音视频制作软件
  5. 融 360、中邮消费金融、作业帮分享数据分析产品选型心得
  6. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
  7. Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with
  8. sealed、new、virtual、abstract与override 趣解
  9. pthread属性使用(转)
  10. 如果我要...(??版)