题意:求最长上升序列长度和方案数。

思路:经典DP,不需什么别的东西,加一个数组储蓄程序数即可,原题300000可能N2会有问题,但问题不大。

见代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,type,q,a[],flag,b[],c[],sum;
int main()
{
freopen("hamon.in","r",stdin);
freopen("hamon.out","w",stdout);
cin>>n>>type;
for(int i=;i<=n;i++)
{
c[i]=b[i]=;
cin>>a[i];
q=;
for(int j=;j<i;j++)
{
if(a[j]<a[i])
{
if(q!=)
if(b[j]==b[i]-)
c[i]+=c[j];
if(b[j]>=b[i])
{
if(b[j]>b[i])
{
c[i]=c[j];
b[i]=b[j];
}
if(b[j]==b[i])
{
c[i]=c[j];
b[i]=b[j]+;
}
q=;
} }
}
}
for(int i=;i<=n;i++)
{
if(b[i]>b[flag])
{
flag=i;
}
}
cout<<b[flag]<<endl;
if(type==)
{
for(int i=;i<=n;i++)
if(b[i]==b[flag])
sum+=c[i];
cout<<sum%;
}
return ;
}

下面是悔恨时间。

不开long long毁一生!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

因为方案数很大,题中说要%123456789,一不小心没开long long

好气啊!!!

见代码*2:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,type,q,a[],flag,b[];
long long c[],sum;
int main()
{
freopen("hamon.in","r",stdin);
freopen("hamon.out","w",stdout);
cin>>n>>type;
for(int i=;i<=n;i++)
{
c[i]=b[i]=;
cin>>a[i];
q=;
for(int j=;j<i;j++)
{
if(a[j]<a[i])
{
if(q!=)
if(b[j]==b[i]-)
c[i]+=c[j];
if(b[j]>=b[i])
{
if(b[j]>b[i])
{
c[i]=c[j];
b[i]=b[j];
}
if(b[j]==b[i])
{
c[i]=c[j];
b[i]=b[j]+;
}
q=;
} }
}
}
for(int i=;i<=n;i++)
{
if(b[i]>b[flag])
{
flag=i;
}
}
cout<<b[flag]<<endl;
if(type==)
{
for(int i=;i<=n;i++)
if(b[i]==b[flag])
sum+=c[i];
cout<<sum%;
}
return ;
}

给我一个巨大的教训。

好题哉!!!

嵊州普及Day4T4的更多相关文章

  1. 嵊州普及Day1T2

    题意:走迷宫.求走到a[n][n]需要多久. 考场上想的dfs,听老师说最多50分.代码懒得码了,知道是走迷宫就好. 正解:bfs,时间复杂度O(n). 见代码: #include<iostre ...

  2. 嵊州普及Day6T3

    题意:n个点,对于q个询问,有t秒及一个矩形的范围.在此矩形内的数每秒加1,若等于c,则下一秒变为0. 思路:t可能很大,%c+1就可以了.然后一个一个加起来就可以了. 见代码: #include&l ...

  3. 嵊州普及Day6T1

    题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<ios ...

  4. 嵊州普及Day5T4

    题意:两个1,每次可将一个*k,一个*K2,n个问题,问能否达成x,y? 思路:只有将x,y相乘为3次方时,才可能.并且相乘的三次方一定要是x,y的因子. 下面证明:3次方易证,因为对每个k,都会乘三 ...

  5. 嵊州普及Day5T2

    题意:将(w,h)的纸条折成(W,H),最少需几步. 思路:横竖互不干扰,然后最多可折int型一半,拿个函数判断两次比较即可,然后折不了的条件是需要的矩形大于给的矩形. 见代码: #include&l ...

  6. 嵊州普及Day5T1

    题意:有n个商店,自家商店的定价不可高于任何一家商店定价,求自家商店最高定价. 思路:拿个变量打擂台即可,不用解释太多. 见代码: #include<iostream> #include& ...

  7. 嵊州普及Day4T2

    题意:有一个单行走廊,每回合第ai个展柜会冒出来一只鬼,右边尽头有一个人间大炮和向最左传送门(费用均1金币),你需要每回合将所有鬼交换展柜,全部至最右,问若从一到n所有回合结束是需多少金币可射死所有鬼 ...

  8. 嵊州普及Day4T1

    题意:从n个数中选出k个数,使他们任意两数之差都等于m. 思路:任意差值都等于m,不就等价于k个数模m余数相同吗? 然后桶排储蓄一下各数余数即可. 见代码: #include<iostream& ...

  9. 嵊州普及Day3T2

    题意:对于n数列的全排列,有多少种可能,是每项前缀和不能整除3.输出可能性%1000000000037. 思路:全部模三,剩余1.2.0,1.2可这样排:1.1.2.1.2.1.2.……2或2.2.1 ...

随机推荐

  1. 在Linux系统中使用ntfs、fat32格式的存储设备

    在Linux系统中使用ntfs.fat32格式的存储设备   我们通常使用的移动硬盘或U盘一般都是ntfs或fat32的文件系统,作为一名运维工程师,经常会遇到把移动硬盘或者U盘上的内容拷贝的Linu ...

  2. Linux新手常用命令

    Linux下有时候需要转换到管理员权限 su root   然后输入密码  或者直接  su ---------------------------------------- 但可能存在鉴定错误的异常 ...

  3. GRE Over IPSec配置

    路由器GRE over IPSec站点到站点VPN         问题分析:对于前面的经典的IPSec VPN的配置来说,兼容性较好,适合于多厂商操作的时候,但是这种经典的配置方式不适合在复杂的网路 ...

  4. 2016-2017学年第三次测试赛 习题H MCC的考验

    问题 H: MCC的考验 时间限制: 1 Sec  内存限制: 128 MB 题目描述 MCC男神听说新一期的选拔赛要开始了,给各位小伙伴们带来了一道送分题,如果你做不出来,MCC会很伤心的. 给定一 ...

  5. idea使用小技巧

    1.按住alt,鼠标往下拉一条直线,可以选中一列或多列,或者不选中任何文字,可以让光标定位到这几行的相同的列的位置,然后输入文本,发现在被选中的所有行同时输入了这些文本(类似notepad++): 2 ...

  6. 【PAT甲级】1048 Find Coins (25 分)(二分)

    题意: 输入两个正整数N和M(N<=10000,M<=1000),然后输入N个正整数(<=500),输出两个数字和恰好等于M的两个数(小的数字尽可能小且输出在前),如果没有输出&qu ...

  7. Android Studio 使用入门及问题汇总

    声明:转载自http://blog.csdn.net/wei_chong_chong/article/details/56280383 之前一直用eclipse+adt做Android开发.曾经尝试使 ...

  8. 洛谷 P1886 滑动窗口(单调队列)

    嗯... 题目链接:https://www.luogu.org/problem/P1886 首先这道题很典型,是标准的单调队列的模板题(也有人说单调队列只能解决这一个问题).这道题可以手写一个队列,也 ...

  9. centos610无桌面安装libreoffice缺失字体

    1.安装libreoffice 2.安装fontconfig yum -y install fontconfig 3.安装ttmkfdir yum -y install ttmkfdir 4.检查已有 ...

  10. matlab练习程序(传染病模型)

    最近新型冠状病毒疫情越来越严重了,待在家中没法出去,学习一下经典传染病模型. 这里总结了五个模型,分别是SI模型,SIS模型,SIR模型,SIRS模型,SEIR模型. 这几种模型的特点先介绍一下. 首 ...