回文数

 /*By SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int m;
char n[];
struct number{
int a[];
int len;
}a,b;
number operator + (number a,number b){
int len=max(a.len,b.len);
number c={};c.len=len;
int tmp=;
for(int i=;i<=len+;i++){
c.a[i]=a.a[i]+b.a[i]+tmp;
tmp=c.a[i]/m;
c.a[i]%=m;
}
if(c.a[c.len+])c.len++;
return c;
}
bool pd(number x){
for(int i=;i<=x.len/;i++){
if(x.a[i]!=x.a[x.len-i+])return ;
}
return ;
}
int main(){
int step=;
scanf("%d",&m);
scanf("%s",n);
int i,j;
int slen=strlen(n);
for(i=;i<slen;i++){
a.len=i+;
if(n[slen-i-]>='' && n[slen-i-]<='')
a.a[i+]=n[slen-i-]-'';
else a.a[i+]=n[slen-i-]-'A'+;
}
while(step<=){
if(pd(a)){
printf("STEP=%d\n",step);
return ;
}
number b={};
b.len=a.len;
for(i=;i<=b.len;i++)
b.a[i]=a.a[a.len-i+];
a=a+b;
step++;
}
printf("Impossible!\n");
return ;
}

回文数

导弹拦截

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

 /*by SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=;
int h[mxn];
int ans=;
int f[mxn],cnt;
int n=;
int main(){
while(scanf("%d",&h[n+])!=EOF ) ++n;
int i,j;
for(i=;i<=n;i++)f[i]=;
for(i=;i<=n;i++)
for(j=;j<i;j++)
if(h[j]>=h[i])f[i]=max(f[i],f[j]+);
ans=;
for(i=;i<=n;i++) ans=max(ans,f[i]);
printf("%d\n",ans);
//part 2
ans=cnt=;
memset(f,,sizeof f);
for(i=;i<=n;i++){
int mini=0x3f3f3f3f,pos=;
for(j=;j<=cnt;j++){
if(f[j]>h[i] && f[j]<mini){
mini=f[j];
pos=j;
}
}
if(!pos){f[++cnt]=h[i];continue;}
f[pos]=h[i];
}
printf("%d\n",cnt);
return ;
}

导弹拦截

邮票面值设计

DP+搜索 这思路挺神的

 /*by SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
using namespace std;
const int mxn=;
int m,k;
int a[mxn],cnt=;
bool vis[mxn];
int f[mxn];
int mxans=;
int ans[mxn];
int DFS(int pos){
memset(f,,sizeof f);
int i,j;
for(i=;i<=;i++){
f[i]=0x3f3f3f3f;
for(j=;j<=pos;j++){
if(a[j]>i)continue;
f[i]=min(f[i],f[i-a[j]]+);
}
if(f[i]>m)return i;
}
}
void dp(int pos){
int tmp=DFS(pos);
// printf("tmp:%d pos:%d\n",tmp,pos);
if(tmp>mxans){
mxans=tmp;
cnt=pos;
memcpy(ans,a,sizeof ans);
}
if(pos==k)return;
for(int i=tmp;i>a[pos];i--){
a[pos+]=i;
dp(pos+);
}
return;
}
int main(){
scanf("%d%d",&m,&k);
int i,j;
a[]=;cnt=;
dp(cnt);
for(i=;i<=cnt;i++){
printf("%d ",ans[i]);
}
printf("\nMAX=%d\n",mxans-);
return ;
}

邮票面值设计

[NOIP1999] 普及组的更多相关文章

  1. 求最长子序列(非连续)的STL方法 - 洛谷P1020 [NOIP1999 普及组] 导弹拦截

    先给出例题:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 大佬题解:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 ...

  2. P1015 [NOIP1999 普及组] 回文数

    点击查看题目 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 ...

  3. 洛谷 P1020 [NOIP1999 普及组] 导弹拦截

    Coidng #include <iostream> #include <algorithm> #include <cstring> #include <ve ...

  4. NOIP2012 普及组 T3 摆花——S.B.S.

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  5. NOIP2016普及组复赛解题报告

    提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...

  6. 05:统计单词数【NOIP2011复赛普及组第二题】

    05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  7. [题解]noip2016普及组题解和心得

    [前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...

  8. NOIP2016普及组

    普及组.代码有空发. 第一题就是买铅笔.暴力模拟绝对可取. 第二题就是回文日期.从t1的年份到t2的年份枚举每一年.头尾要特判. 第三题就是海港.骗了40分. 第四题就是魔法阵.不太好优化. 完.

  9. [NOIP2013] 普及组

    计数问题 纯模拟 #include<cstdio> #include<iostream> using namespace std; int main(){ int n,x; c ...

随机推荐

  1. leetcode315 Count of Smaller Numbers After Self

    思路: bit + 离散化. 实现: #include <bits/stdc++.h> using namespace std; class Solution { public: int ...

  2. Git-merge & rebase(变基)

    在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase. merge: merge有两种方法,fast-forward(快速合并)和three-way merge(三方合并 ...

  3. ubuntu下php安装目录说明

    php当前安装目录 /etc/php5/ apache2:   采用APACHE2HANDLER启动 cli:   采用命令启动 fpm php-fpm启动 fpm2     php-fpm多实例 m ...

  4. 【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information

    基于图形信息的HEVC帧间预测快速算法/Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information <H ...

  5. Java格式规范及注释的用法

    /* 需求:演示一个Hello World的Java小程序 思路: 1.定义一个类.因为Java程序都是定义在类中,Java程序都是以类的形式存在的,类的形式其实就是字节码的最终体现 2.定义一个主函 ...

  6. 在2015年 开发一个 Web App 必须了解的那些事

    在过去的一年里,我在从头开始开发我的第一个重要的Web应用.经验教会了很多以前不知道的东西,特别是在安全性和用户体验方面. 值得一提的是,我上一次尝试构建的任何合理复杂性是在2005年.所以,在安全防 ...

  7. 记一次mysql优化操作

    这次操作,起因是需要获取用户来源及用户性别,而用户的性别信息在第三方授权的中有,存为JSON格式, 不想用php去解析获取,所以试试mysql操作 如果你有更好的解决方案,请留言告诉我! 情景简化 表 ...

  8. (转)使用Spring的注解方式实现AOP入门

    http://blog.csdn.net/yerenyuan_pku/article/details/52865330 首先在Eclipse中新建一个普通的Java Project,名称为spring ...

  9. 吸顶条 ---- jQ写法

    <script> $(function () { var barTop = $('#bar').offset().top; //on方法相当于原生的绑定 $(window).on('scr ...

  10. 一个电脑安装两个jdk版本

    场景:先前使用了1.6的jdk但是现在学java需要使用jdk1.8的,现在打算电脑上使用两个jdk 1 . 准备两个版本的jdk我的两个jdk路径为: D:\jdk1.7.0_80 D:\Progr ...