过节(festival.cpp/c/pas)

Dxy帮老师们过教师节的时候需要购买礼物。货架上有n 种礼物,每种礼物有不同的个数。每种礼物有价值和花费两种属性,帮他算出最大可以得到的价值。M是带的钱数有多少

Input:

第一行两个数n,m

第2到n+1行:每行三个数a,b,c,表示一种礼物的个数,花费和价值。

 

Output:

最大可得价值。

 

样例输入:

1  1

1  1  1

 

样例输出:

1


多重背包 也可以拆开做01背包QAQ

背包教程百度背包九讲 || 阅读

http://transcoder.baidu.com/from=844b/bd_page_type=1/ssid=d6c350616c6164696e3130303130302d71/uid=0/pu=usm%401%2Csz%401320_1001%2Cta%40iphone_2_4.4_3_537/baiduid=864138CF7B44F345487B864DC214C0DF/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=1744986806270038500&order=2&fm=alop&tj=www_normal_2_0_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&title=%E8%83%8C%E5%8C%85%E4%B9%8B01%E8%83%8C%E5%8C%85%E5%AE%8C%E5%85%A8%E8%83%8C%E5%8C%85%E5%A4%9A%E9%87%8D%E8%83%8C%E5%8C%85%E8%AF%A6%E8%A7%A3-Tan..._%E5%8D%9A%E5%AE%A2%E5%9B%AD&dict=30&w_qd=IlPT2AEptyoA_yk574oovA75HCdSjoS&sec=15106&di=95beeae6623de50a&bdenc=1&tch=124.0.0.0.0.0&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAVj06K7_dFEb7gTCcg2tSaC8hOnEobxB0r_x6sVsf8Gjb9fvtdhPsHBEZhgNmOhz_XC5o&eqid=18377041457812001000000157d3e2a9&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1473504051781%2C%22xpath%22%3A%22div-a-h3%22%7D

//楼上网址很长对吗 我也觉得QAQ

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#define MOD 99999997
#define tips 100004
using namespace std;
int f[],n,m,cnt=;
int a[],b[];
int main()
{
freopen("festival.in","r",stdin);freopen("festival.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&z,&y);
for(int j=;j<=x;j++)a[++cnt]=y,b[cnt]=z;
}
for(int i=;i<=cnt;i++)
for(int j=m;j>=a[i];j--)
f[j]=max(f[j],f[j-a[i]]+b[i]);
int ans=;
for(int i=;i<=m;i++)ans=max(ans,f[i]);
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
return ;
}

搞成01背包


a*b(mod.cpp/c/pas)

没错dxy的题目就是这么简单。

输入:

第一行一个数t,表示有t个数据

第2到第t+1行,每行三个正整数a,b,c (a,b,c<=10^18)

输出:对于每组数据输出(a*b)%c

 

样例输入:

1

1   2    3

样例输出:

2


思想大概就是把两个数分成几个数的和 然后就能乘了

压行写的话三行搞定QAQ

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn
using namespace std; int n; long long mul(long long a, long long b, long long p)
{ // a * b % p;
long long ret = ;
for (int i = ; ~ i; -- i)//~ >=0
ret = (ret + ret) % p, b & (1ll << i) ? ret = (ret + a) % p : ;
return ret % p;
} int main()
{
freopen("mod.in","r",stdin);
freopen("mod.out","w",stdout);
cin>>n;
long long a,b,c;
for(int i=;i<=n;++i)
{
scanf("%lld%lld%lld",&a,&b,&c);
printf("%lld",mul(a,b,c));
puts("");
}
fclose(stdin);fclose(stdout);
return ;
}

%%%YJL


扫描(scan.cpp/c/pas)

【题目描述】

有一个 1  n 的矩阵,有 n 个正整数。

现在给你一个可以盖住连续的 k 的数的木板。

一开始木板盖住了矩阵的第 1  k 个数,每次将木板向右移动一个单位,直到右端与

第 n 个数重合。

每次移动前输出被覆盖住的最大的数是多少。

【输入格式】

从 scan.in 中输入数据

第一行两个数,n,k,表示共有 n 个数,木板可以盖住 k 个数。

第二行 n 个数,表示矩阵中的元素。

【输出格式】

输出到 scan.out 中

 n − k + 1 行,每行一个正整数。

 i 行表示第 i  i + k − 1 个数中最大值是多少。

【样例输入】

5 3

1 5 3 4 2

【样例输出】

5

5

4

【数据规模与约定】

对于 20% 的数据保证:1 ≤ n ≤ 10^3,1 ≤ k ≤ n

对于 50% 的数据保证:1 ≤ n ≤ 10^4,1 ≤ k ≤ n

对于 100% 的数据保证:1  n  2  10^51  k  n

矩阵中元素大小不超过 104。


线段树

笔记见分类:算法学习->线段树笔记√

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 800005
#define inf 2000022800
using namespace std;
int n,k;
int a[];
int ll[maxn],rr[maxn];
int max1[maxn]; int MAX(int a,int b)
{
if(a>b)return a;
else return b;
} int MIN(int a,int b)
{
if(a<b)return a;
else return b;
} void build(int pos,int l,int r)
{
ll[pos]=l,rr[pos]=r;
if(l==r)
{
max1[pos]=a[l];
return;
}
int mid=l+r>>;
build(pos<<,l,mid);
build(pos<<|,mid+,r);
max1[pos]=MAX(max1[pos<<],max1[pos<<|]);
} int query(int pos,int l,int r)
{
l=MAX(ll[pos],l),r=MIN(rr[pos],r);
if(l>r)return -*inf;//²éѯmax¾Í-inf£¬min¾Íinf£¬sum¾Í0
if(l==ll[pos]&&r==rr[pos]) return max1[pos];
int mid=l+r>>;
return MAX(query(pos<< , l , r) , query(pos<<| , l , r));
} int main()
{
// freopen("disappear.in","r",stdin);
// freopen("disappear.out","w",stdout);
cin>>n>>k;
for(int i=;i<=n;++i)
{
scanf("%d",&a[i]);
}
build(,,n);
for(int i=;i<=n-k+;++i)
{
printf("%d",query(,i,i+k-));
puts("");
}
puts("");
fclose(stdin);fclose(stdout);
return ;
}

DXY的消失

题目描述

给出 N 个点,M 条边的有向图,对于每个点 v,求 D(v) 表示从点 v 出发,能到达的编号最大的点。

 

输入格式

第 1 行,2 个整数 N,M。 接下来 M 行,每行 2 个整数 Ui,Vi,表示边 ⟨Ui,Vi⟩。点用 1,2,...,N 编号。

 

输出格式

N 个整数 D(1),D(2),...,D(N)

样例输入

4 3

1 2

2 4

4 3

样例输出

4 4 3 4

数据范围

对于 60% 的数据,1 ≤ N,M ≤ 1000

对于 100% 的数据,1 ≤ N,M ≤ 100000。


① 学习tarjan

②把图变成反图,从最大的点开始走,走过的点就不要走了。比如编号最大的点是5,那就把能走到5的点都标记成5,然后把这些点删掉。

是《挑战程序设计竞赛》上的例题,详解见P320

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#define MAX 100005
using namespace std;
vector<int> G[MAX],rG[MAX],vs;
int used[MAX],cmp[MAX],ans[MAX];
int V,m; void add(int from,int to)
{//·´ÏòµÄ·´Ïò±ß
G[from].push_back(to);
rG[to].push_back(from);
} void dfs(int v)
{
used[v]=;
for(int i=;i<G[v].size();i++)
{
if(!used[G[v][i]]) dfs(G[v][i]);
}
vs.push_back(v);
}
void rdfs(int v,int k)
{
used[v]=;
cmp[v]=k;
for(int i=;i<rG[v].size();i++)
{
if(!used[rG[v][i]]) rdfs(rG[v][i],k);
}
ans[k]=max(ans[k],v);
for(int i=;i<rG[v].size();i++)
{
ans[k]=max(ans[k],ans[cmp[rG[v][i]]]);
}
} int scc()
{
memset(used,,sizeof(used));
vs.clear();
for(int v=;v<=V;v++)
{
if(!used[v]) dfs(v);
}
memset(used,,sizeof(used));
int k=;
for(int i=vs.size()-;i>=;i--)
{
if(!used[vs[i]]) rdfs(vs[i],k++);
}
} int main()
{
freopen("disappear.in","r",stdin);
freopen("disappear.out","w",stdout);
scanf("%d%d",&V,&m);
for(int i=;i<=m;i++)
{
int from,to;
scanf("%d%d",&from,&to);
add(to,from);//·´Ïò
}
scc();
for(int i=;i<=V;i++)printf("%d ",ans[cmp[i]]);
puts("");
return ;
}

套题T6的更多相关文章

  1. 第46套题【STL】【贪心】【递推】【BFS 图】

    已经有四套题没有写博客了.今天改的比较快,就有时间写.今天这套题是用的图片的形式,传上来不好看,就自己描述吧. 第一题:单词分类 题目大意:有n个单词(n<=10000),如果两个单词中每个字母 ...

  2. Educational Codeforces Round 15 套题

    这套题最后一题不会,然后先放一下,最后一题应该是大数据结构题 A:求连续最长严格递增的的串,O(n)简单dp #include <cstdio> #include <cstdlib& ...

  3. 【套题】qbxt国庆刷题班D1

    Day1 事实上D1的题目还是比较简单的= =然而D1T2爆炸了就十分尴尬--错失一波键盘 看题 T1 传送门 Description 现在你手里有一个计算器,上面显示了一个数\(S\),这个计算器十 ...

  4. Moscow Pre-Finals Workshop 2016. Japanese School OI Team Selection. 套题详细解题报告

    写在前面 谨以此篇题解致敬出题人! 真的期盼国内也能多出现一些这样质量的比赛啊.9道题中,没有一道凑数的题目,更没有码农题,任何一题拿出来都是为数不多的好题.可以说是这一年打过的题目质量最棒的五场比赛 ...

  5. Tarjan & LCA 套题题目题解

    刷题之前来几套LCA的末班 对于题目 HDU 2586 How far away 2份在线模板第一份倍增,倍增还是比较好理解的 #include <map> #include <se ...

  6. 套题 codeforces 361

    A题((Mike and Cellphone) 看起来好像需要模拟数字键位的运动,可是,只要判断出那些必然YES的数字组合不就好了么 #include <cstdio> #include ...

  7. 套题 codeforces 360

    A题:Opponents 直接模拟 #include <bits/stdc++.h> using namespace std; ]; int main() { int n,k; while ...

  8. 套题 codeforces 359

    A题:Free Ice Cream 注意要使用LL,避免爆int #include <bits/stdc++.h> #define scan(x,y) scanf("%d%d&q ...

  9. 套题 bestcoder 84

    A题:Aaronson 静下心来观察就会发现1.如果m大于等于n的位数,那么n直接写成二进制形式就是最优解形式2.如果m小于n的位数,那么贪心地使得高位尽可能地多消掉n的值,因为高位少写一个数就意味着 ...

随机推荐

  1. 图片剪裁上传插件 - cropper

    图片剪裁上传插件 - cropper <style> .photo-container{float: left;width: 300px;height: 300px;} .photo-co ...

  2. php对数组排序代码

    php对数组排序,介绍了和php,有关的知识.技巧.经验,和一些php源码等. 对数组排序 usort() 函数使用用户自定义的函数对数组排序. */ function cmp($a, $b) //用 ...

  3. php后台如何避免用户直接进入方法实例

    这篇文章介绍了php后台如何避免用户直接进入方法实例,有需要的朋友可以参考一下 1)创建BaseController控制器继承Controller(后台的一切操作要继承BaseController): ...

  4. Eclipse 代码提示功能设置。

    1.        解决实例化时自动补全不必要的单词问题 2.        以MyEclipse 6.5重新配图 鉴 于网上的批评之声甚大,我只想说明我的想法:这样的增强代码提示,最终是用来辅助我们 ...

  5. exec 和 source的区别

    source 就是让 script 在当前 shell 内执行.而不是产生一个 sub-shell 来执行.由exec 也是让 script 在同一个行程上执行,但是原有行程则被结束了. source ...

  6. [SQL_Server_Question]Msg 1105无法为数据库 'tempdb' 中的对象分配空间,因为 'PRIMARY' 文件组已满

    错误消息: Msg 1105, Level 17, State 2, Line 266Could not allocate space for object 'dbo.Large Object Sto ...

  7. WPF中的Style

    一.Style基础知识 构成Style最重要的两种元素是Setter和Trigger Setter类帮助我们设置控件的静态外观风格 Trigger类帮助我们设置控件的行为风格 Setter类的Prop ...

  8. CentOS服务器Http压力测试之ab

    ab的全称是Apache Bench,是Apache自带的网络压力测试工具,相比于LR.JMeter,是我所知道的 Http 压力测试工具中最简单.最通用的. ab命令对发出负载的计算机要求很低,不会 ...

  9. IOS开发问题录:如何在Swift中引入Head文件?

    最近在学习IOS开发,从一个简单的登录开始,逐步解决了一个网络访问.获取控件值等问题,遇到了信息加密的问题. 做为IOS的入门者,信息加密需要解决如下几个问题: 1.IOS的MD5加密有没有固定函数, ...

  10. Python实战(1)

    此次实战完全按照Python教程 - 廖雪峰的官方网站进行 首先下载windows版本的Python2.7,附上下载链接http://www.python.org/ftp/python/2.7.6/p ...