嵊州普及Day4T4
题意:求最长上升序列长度和方案数。
思路:经典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的更多相关文章
- 嵊州普及Day1T2
题意:走迷宫.求走到a[n][n]需要多久. 考场上想的dfs,听老师说最多50分.代码懒得码了,知道是走迷宫就好. 正解:bfs,时间复杂度O(n). 见代码: #include<iostre ...
- 嵊州普及Day6T3
题意:n个点,对于q个询问,有t秒及一个矩形的范围.在此矩形内的数每秒加1,若等于c,则下一秒变为0. 思路:t可能很大,%c+1就可以了.然后一个一个加起来就可以了. 见代码: #include&l ...
- 嵊州普及Day6T1
题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<ios ...
- 嵊州普及Day5T4
题意:两个1,每次可将一个*k,一个*K2,n个问题,问能否达成x,y? 思路:只有将x,y相乘为3次方时,才可能.并且相乘的三次方一定要是x,y的因子. 下面证明:3次方易证,因为对每个k,都会乘三 ...
- 嵊州普及Day5T2
题意:将(w,h)的纸条折成(W,H),最少需几步. 思路:横竖互不干扰,然后最多可折int型一半,拿个函数判断两次比较即可,然后折不了的条件是需要的矩形大于给的矩形. 见代码: #include&l ...
- 嵊州普及Day5T1
题意:有n个商店,自家商店的定价不可高于任何一家商店定价,求自家商店最高定价. 思路:拿个变量打擂台即可,不用解释太多. 见代码: #include<iostream> #include& ...
- 嵊州普及Day4T2
题意:有一个单行走廊,每回合第ai个展柜会冒出来一只鬼,右边尽头有一个人间大炮和向最左传送门(费用均1金币),你需要每回合将所有鬼交换展柜,全部至最右,问若从一到n所有回合结束是需多少金币可射死所有鬼 ...
- 嵊州普及Day4T1
题意:从n个数中选出k个数,使他们任意两数之差都等于m. 思路:任意差值都等于m,不就等价于k个数模m余数相同吗? 然后桶排储蓄一下各数余数即可. 见代码: #include<iostream& ...
- 嵊州普及Day3T2
题意:对于n数列的全排列,有多少种可能,是每项前缀和不能整除3.输出可能性%1000000000037. 思路:全部模三,剩余1.2.0,1.2可这样排:1.1.2.1.2.1.2.……2或2.2.1 ...
随机推荐
- python的matplotlib的热门可视化动图
1.图 2.代码 import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import matplot ...
- fastJson javaBean和JSON对象相互转换
fastjson的作用就是把java 对象转化为字符串,把字符串转化为java对象,然后方便进行后续的逻辑处理. java对象和json互相转换都是通过JSON对象操作的: JavaBean bean ...
- 各大厂商发力5G新机,未来全球手机市场或将呈现新格局
随着5G商用将正式于今年开启落地,运营商和手机厂商都在为新一代网络制式积极做好准备.对于运营商来说,它们在不断增加5G基站的建设,让5G信号覆盖更广泛的范围.而对于手机厂商来说,它们在努力推出旗下的5 ...
- 洛谷P2142 高精度减法 题解
想找原题请点击这里:传送门 原题: 题目描述 高精度减法 输入格式 两个整数a,b(第二个可能比第一个大) 输出格式 结果(是负数要输出负号) 输入输出样例 输入 复制 输出 复制 说明/提示 %数据 ...
- StaticLinkList(静态链表)
写这个写了几次,然后都没写完就关掉了,所以也不想多码字了,直接上代码吧(本来还认真自制了一张图片来理解静态链表的cursor与sub之间的关系)但其实也就那么回事:通过游标来找下标通过下标找到对应的数 ...
- SpringMVC中在Controller类的每个方法执行前调用某个方法的实现
在使用SpringMVC做项目的时候,如果想在@Controller类中每个@RequestMapping方法执行前都调用某个方法,要怎么实现呢?答案是使用Spring的@ModelAttribute ...
- cross_val_score 交叉验证与 K折交叉验证,嗯都是抄来的,自己作个参考
因为sklearn cross_val_score 交叉验证,这个函数没有洗牌功能,添加K 折交叉验证,可以用来选择模型,也可以用来选择特征 sklearn.model_selection.cross ...
- SQL SERVER2005自动备份 2012.3.29
要想在 SQL2005上进行数据库的自动备份必须把sql server的SQL Server Agent服务开启,否则是无法进行自动备份的 启动完成之后,用户可以直接在“管理”下面的“维护计划”选项来 ...
- 笔记-Python-性能优化
笔记-Python-性能优化 1. 开始 1.1. python性能差么? 做一个判断前,先问是不是. python运行效率低是事实. 1.2. 为什么? 原因: Python是 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:联合使用所有表格类
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...