中山Day4——普及
生活开始日益平淡了呢。。。今天130分。
收获:归并排序求逆序对
背包问题(01、完全、多重)(外带滚动数组优化)
T1:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的)
思路:动态规划。首先,设dp[i][k]为从a1到ak余数等于n的块数。然后先预处理一下,设sum[i][j]为从i到j%m的余数。接着用1至m-1来更新dp。
然后可以推出转移方程为:dp[i][(k*sum[j+1][i])%m]=max(dp[i][(k*sum[j+1][i])%m],dp[j][k]+1)。
这么做的时间复杂度是O(len^2*m),肯定是能过的。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,m,a[],sum[][],dp[][];
char c[];
int main()
{ for(int i=;i<=;i++)
for(int j=;j<=;j++)
dp[i][j]=0x7f7f7f;
scanf("%s%d",&c,&m);
int len=strlen(c);
for(int i=;i<len;i++)
a[i+]=c[i]-'';
for(int i=;i<=len;i++)
for(int j=i;j<=len;j++)
sum[i][j]=(sum[i][j-]*+a[j])%m;
for(int i=;i<=len;i++)
dp[i][sum[][i]]=;
for(int i=;i<=len;i++)
{
for(int j=;j<i;j++)
{
for(int k=;k<=m-;k++)
dp[i][(k*sum[j+][i])%m]=min(dp[i][(k*sum[j+][i])%m],dp[j][k]+);
}
}
for(int i=;i<=m-;i++)
{
if(dp[len][i]!=0x7f7f7f)
{
printf("%d %d ",i,dp[len][i]-);
break;
}
}
for(int i=m-;i>=;i--)
{
if(dp[len][i]!=0x7f7f7f)
{
printf("%d %d ",i,dp[len][i]-);
break;
}
}
return ;
}
好题哉!!!
T2:题目链接(这道我暴力冒泡30分)
思路:其实是很简单的,就是裸的归并排序找逆序对而已,可惜我早上不会,考到也算查漏补缺了。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,a[],b[];
long long ans;
void merge_sort(int l,int r)
{
if(r-l>)
{
int mid=(l+r)/;
merge_sort(l,mid);
merge_sort(mid+,r);
int i=l,q=mid+,p=l;
while(q<=r||p<=mid)
{
if(q>r||(p<=mid&&a[p]<=a[q]))
{
b[i++]=a[p++];
}
else
{
b[i++]=a[q++];
ans+=mid-p+;
}
}
for(int i=l;i<=r;i++)
a[i]=b[i];
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
merge_sort(,n);
printf("%ld",ans);
return ;
}
好题哉!!!
T3:题目链接(唯一A掉的一道水题)
思路:第一眼看到k<=1018,就想到了以为叫做小凯的同学。于是就打了个表,发现是个斐波那契数列,然后就递推一下,外加维护一个前缀和,秒做的有没有。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
long long k,i;
struct h{
long long num1;
long long num2;
long long q;
};
h fb[];
int main()
{
fb[].num1=fb[].num2=;
fb[].q=;
scanf("%ld",&k);
while(fb[i].q<k)
{
i++;
fb[i].num2=fb[i-].num1;
fb[i].num1=fb[i-].num1+fb[i-].num2;
fb[i].q=fb[i-].q+fb[i].num2;
}
printf("m=%ld\n",fb[i].num2);
printf("n=%ld",fb[i].num1);
return ;
}
好题哉!!!
T4:题目链接
思路,最为清晰的一题:多重背包!!!可惜我又不会。。。恶补了下背包,以后就不会有问题啦,好开心
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,c,num,k=,v[],w[],dp[];
int main()
{
scanf("%d%d",&n,&c);
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&v[i],&w[i],&num);
{
for(int k=;k<=num;k++)
for(int j=c;j>=w[i];j--)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
}
printf("%d",dp[c]);
return ;
}
可惜这题不开单调队列优化就只有30分。诶……
好题哉!!!
中山Day4——普及的更多相关文章
- 中山Day10——普及
今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...
- 中山Day5——普及
今天题目真是贼难呐...才38... 收获:树状数组单个修改 树状数组区间修改 T1:旅行 题意:有n个数,问;从中取任意个数,他们的和为质数的方案数是多少?(n<=50) 暴力模拟即可,这里不 ...
- 中山DAy2——普及
今天挺不友好的,早上忘记定闹钟,晚了半小时起床,然后早上信心满满打算弄他个300分.结果……132.2分·.WTF??? T1:disease 题意:有n头奶牛,k种细菌(k<=15),给你每头 ...
- 2019中山纪念中学夏令营-Day4[JZOJ]
Begin (题目的排序方式:难易程度) 什么是对拍: 对拍是一种在写完程序后,验证自己程序是不是正解的比较方便的方法. 实现过程: 对同一道题,再打一个暴力程序,然后用一些大数据等跑暴力程序来进行验 ...
- 中山纪中集训Day4双是测试(划沝) 九校联考-DL24凉心模拟Day2
A组T1 锻造 (forging) 1.1 题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现......自己连一个史莱姆 ...
- 中山普及Day17——普及
今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!
- 中山普及Day13——普及
又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...
- NOIP2016普及总结
---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...
- NOIP2016普及
还记得去年局部变量忘记置零coin爆零的事......结果我今年又要考一年普及[趴 最近沉迷分块莫队无法自拔,这几天才想起来我是个普及组选手 几乎没准备普及,周六上午抱抱佛脚好了...... 希望能顺 ...
随机推荐
- 前端框架vue学习笔记:环境搭建
兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...
- jquery Ajax标准规范写法
$.ajax({ url:"http://www.xxx",//请求的url地址 dataType:"json",//返回的格式为json async:true ...
- 拥抱高通的联想,真的能靠5G突围?
编辑 | 于斌 出品 | 于见(mpyujian) 2016年,对于常年自我标榜为"民族企业"的联想来说是品牌口碑的"转折之年".它在这一年的5G信道编码标准方 ...
- utf-8无bom格式编码
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在U ...
- 微信+QQ跳转
加到对应页面的</body> 上面,或者<head> </head>之间 <script type="text/javascript"&g ...
- 「题解」「JOISC 2014 Day1」历史研究
目录 题目 考场思考 思路分析及标程 题目 点这里 考场思考 大概是标准的莫队吧,离散之后来一个线段树加莫队就可以了. 时间复杂度 \(\mathcal O(n\sqrt n\log n)\) . 然 ...
- ZOJ4114 Flipping Game(2019山东省赛)
有n个开关,有起始状态和终状态,问如果每次必须选m个开关进行改变状态,一共进行k次,那么有多少种方式可以从起始状态到终状态~ #include<bits/stdc++.h> using n ...
- Attributes for Slot
关于AP Config中的一些参数的意义: Radio Type................................... RADIO_TYPE_80211ac-5 Radio Subba ...
- WLC exclusionlist
Configuring Client Exclusion Configuring Client Exclusion Policies (GUI) Step 1 Choose Security &g ...
- 【原】Django数据Model层总结
vlaues - 单条记录 - <class 'dict'> 多条记录 - <class 'django.db.models.query.QuerySet'> vlaues_l ...