【dp】拔河比赛】的更多相关文章

01背包:感谢ZCK大佬 题目描述 学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近. 输入 输入中的第一行只有一个整数n(1≤n≤100),第二行有n个以空格分隔的整数,表示每人的体重wi(所有的wi均满足:1≤wi≤450). 输出 输出只有一行,该行有两个整数,以一个空格分隔.第一个数表示体重较大的组的体重总和,第二个数表示体重较小的组的体重总和. 题面看上去很短,题意也很好理解:就是将n个…
1959 拔河比赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近. 输入描述 Input Description 数据的第1行是一个n,表示参加拔河比赛的总人数,n<=100,接下来的n行表示第1到第n个人的体重,每个人的体重都是整数(1<…
1959 拔河比赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近. 输入描述 Input Description 数据的第1行是一个n,表示参加拔河比赛的总人数,n<=100,接下来的n行表示第1到第n个人的体重,每个人的体重都是整数(1<=weight<…
题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近. 输入描述 Input Description 数据的第1行是一个n,表示参加拔河比赛的总人数,n<=100,接下来的n行表示第1到第n个人的体重,每个人的体重都是整数(1<=weight<=450). 输出描述 Output Description 包含两个整数:分别是两个组的所有人的体重和,用一个空…
题目描述 superwyh的学校要举行拔河比赛,为了在赛前锻炼大家,老师决定把班里所有人分为两拨,进行拔河因为为锻炼所以为了避免其中一方的实力过强老师决定以体重来划分队伍,尽 量保持两个队伍的体重差最少,因为老师对结果没兴趣,所以只告诉老师最小的体重差是多少就行了.这个受苦受累的任务就交给superwyh了,因为这两天superwyh的后背间谍sjh 闹肚子了,所以只好superwyh亲自去调查每个人的体重,但是仅仅知道体重依然难以确定到底如何分配队伍,请各位oier帮助superwyh出出主意…
week_2_day1_7.7 周一//用字符数组 来实现 字母大小写转换#include<stdio.h>void desc( char *a ,int n){    char  *i = a;    int x = 0 ;    for ( x = 0; x < n ;x ++ )    {                    if ( *i  >= 97 )                        *i-=32;        i++;    }}int main(v…
A . [ 例 题 1 ] 拔 河 比 赛 A. [例题1]拔河比赛 A.[例题1]拔河比赛 解析 模板题,选与不选 Code #include <bits/stdc++.h> #define ll long long using namespace std; int w[25]; int t, n, ans, sum; void dfs (int x, int y, int z) { if (y == n / 2) { ans = min (ans, abs (z * 2 - sum));…
题目:小Z组织训练营同学进行一次拔河比赛,要从n(2≤n≤60,000)个同学中选出两组同学参加(两组人数可能不同).对每组同学而言,如果人数超过1人,那么要求该组内的任意两个同学的体重之差的绝对值不超过k(包含k).问最多有几个同学能参加比赛? 我的超时了 #include <bits/stdc++.h> using namespace std; const int maxn = 60010; int data[maxn] = {0}; int main() { int n, k; scan…
题目大意:给定一个有 N 个数的集合,将这 N 个数均分成两堆,求差值最小是多少. 题解:有关集合选数的问题,应该是背包问题,同时要求均分可知,选出的物品数目也应该是背包费用的一个维度,因此这是一个多维费用背包问题.设状态 \(dp[i][j][k]\) 表示考虑了前 i 个数字,已经选了 j 个数字,数字之和为 k 的情况是否可行,可知状态转移方程为 \(dp[i][j][k]|=dp[i-1][j-1][k-w[i]]|dp[i-1][j][k]\).最后进行滚动数组优化即可. 代码如下 #…
原题地址:http://www.rqnoj.cn/problem/72 解题思路:基本的01背包问题. 要求的就是在这些人中选出一些人,使得这些人的体重的和 不超过所有人的体重的一半 并最大. 代码: #include<stdio.h> #include<iostream> using namespace std; ]; int t; ][]; int s; int max(int a,int b) { return a>b?a:b; } int main() { int i…
Day 1 上午 讲的挺基础的--不过还是有些地方不太明白 例1 给定一个数n,求将n划分成若干个正整数的方案数. 例2 数字三角形 例7 最长不下降子序列 以上太过于基础,不做深入讨论 例3 给定一个数n,求将n划分成若干个正整数的方案数. 题解: 定义状态 \(dp[i][j]\)表示用不超过\(j\)的数来组成\(i\) 状态转移 \(i < j \;\;\; dp[i][j]=dp[i][i]\) \(i = j \;\;\; dp[i][j]=dp[i][j-1]+1\) \(i >…
题目:传送门. 这个是DP,比赛的时候用贪心写了好久没写出来. 题意: 有n个矮人被困在深度为h的井中,每个矮人都ai(脚到肩膀的高度)和bi(手臂长度), 当存在a1 + a2 + ... + ak-1 + ak+ bk >= h,矮人k可以从井中逃脱出去.问最多能逃出去几个人. 题解: dp[i][j]代表的是在前i个人中能逃脱出j个人后,剩余井中矮人再想逃脱出至少一人还需要的最小高度是多少,分析如下,逃脱出的j个人中最后逃脱的一定是 ai +bi最大的,这样才能得到dp值是最优的,需要首先…
很久以前做过这道题,晚上睡不着,看见nyist加了一个DP的比赛,就进来打个酱油. 这道题的点睛之笔是将最大值记录下来,然后将其值改为0.之后就是普通的背包了. #include<stdio.h> #include<string.h> #define N 1005 int Max(int x,int y) { if(x>y) return x; else return y; } int main() { int n; int a[N],mark[N]; while(scanf…
LINK 题意:两人在一颗树上做游戏,先手可以将树上一个节点染白,后手染黑,到最后时,所有与黑色相邻的白色同时变黑.如果还存在白色,先手胜,否则后手胜. 思路:首先不考虑树上,单独为链时,不管找规律也好,还是直接异或值推导都能轻易得出.那么考虑拥有子树的节点,其胜败条件为所有子树的胜负局面的异或值. 那么关键是在树上进行转移,所以就是个简单的树形DP了,比赛时写了半天DFS没写出来.. /** @Date : 2017-05-06 21:02:21 * @FileName: D.cpp * @P…
本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394. 前言 动态规划(Dynamic Programming),是一个神奇的东西.DP只能意会,不可言传.大家在做DP题的时候一定要理清思路,一般是先不管空间,毕竟以空间换时间,大多数题都是先卡时间再卡空间的. DP具备的两个要素:最优子结构和子问题重叠,见<算法导论>225页.简单来讲就是问题是一个由多决策产生最优值的最优化问题. 最优化原理:其子问题的最优会导致全局最优,具有最优子结构的…
题目\(1\) Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,且两个组内的所有人体重加起来尽可能地接近. Input 第\(1\)行是一个\(n\),表示参加拔河比赛的总人数,\(n<=100\),接下来的n行表示第\(1\)到第\(n\)个人的体重,每个人的体重都是整数\((1<=weight<=450)\). Output 包含两个整数:分别是两个组的所有人的体重和,用一个空格隔开.注意如果这两个数不相等,则请把小的放在前面输…
例题1:乌龟棋 略 例题2: noip2015 子串 有两个仅包含小写英文字母的字符串 A 和 B. 现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新的字符串, 请问有多少种方案可以使得这个新串与字符串 B 相等?注意:子串取出的位置不同也认为是不同的方案. 设f[i][j][k][1/0]表示到了A第i位,B第j位,选了K个,1/0选育不选 转移:就是照着状态转移 a[i]==b[j]:dp[i][j][k][1…
Magic boy Bi Luo with his excited tree Problem Description Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it's value is V[i], and for each edge, there is a cost C[i], which means every time…
Apple Catching Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8759   Accepted: 4264 Description It is a little known fact that cows love apples. Farmer John has two apple trees (which are conveniently numbered 1 and 2) in his field, eac…
一个简单的dp,比赛的时候太坚信自己的小聪明没用二维数组一直WA到死: #include<cstdio> #include<cstring> #define maxn 1009 #define mod 1000000007 using namespace std; int num[maxn]; ],andci[maxn][]; ]; int main() { int t,n; scanf("%d",&t); while(t--) { scanf(&quo…
题意:有一些人,每人拿一个号码,有两个门,门的值分别为A和B,要求把人分成两堆(可以为空)一堆人手持号码之和的数字根若等于A或者B就可以进入A门或者B门,要求两堆人分别进入不同的门,求有几种分配方式,如果A和B的值相等则算两种. 解法:dp.比赛的时候并不知道一个数%9+1就是数字根……煞费苦心的算了半天……只得出结论a+b的数字根等于a的数字根+b的数字根的数字根……没打表……于是T了……然后打了个表才过orz 设dp[i][j]表示用前i个人获得数字根为j的和的方案数,打一个表vector<…
点我看题目 A. Mashmokh and Lights time limit per test:1 secondmemory limit per test:256 megabytesinput:standard inputoutput:standard output Mashmokh works in a factory. At the end of each day he must turn off all of the lights. The lights on the factory a…
AM学军OJ T1 暴力 #include<bits/stdc++.h> using namespace std; typedef long long LL; + ; int len, power; int get_next(int x) { + x % * power; } int vis[N], clk; LL calc(int l, int r) { LL ans = ; for(int i = l; i <= r; i++) if(vis[i] != clk) { , x = i…
只有链接:http://sdu.acmclub.com/index.php?app=problem_title&id=961&problem_id=23685 题意:现在有n个QiQi和n个任务,告诉了每个QiQi能够成功完成这n个任务的概率,每个QiQi只能完成一种任务,问你如何安排任务使得所有的任务被完成的概率最大. 题解:很明显的状压Dp啊.之前没有独立的打过这种DP,比赛的时候打了一发,结果WA,第二天才知道自己枚举的时候状态少枚举了.结果复习了一下状压dp.然后打了一发,结果T了…
原文链接:https://developers.google.com/machine-learning/crash-course/classification/ 1- 指定阈值 为了将逻辑回归值映射到二元类别,必须指定分类阈值(也称为判定阈值).如果值高于该阈值,则表示“1”:如果值低于该阈值,则表示“0”.人们往往会认为分类阈值应始终为 0.5,但阈值取决于具体问题,因此必须对其进行调整. 2- 真与假.正类别与负类别 真正例是指模型将正类别样本正确地预测为正类别. 假正例是指模型将负类别样本…
[USACO08FEB]修路Making the Grade比较难的dp,比赛时打的找LIS,然后其他的尽可能靠近,40分.先举个例子61 2 3 1 4 561 2 3 3 4 5第4个1要么改成3,要么改成4,反正是数列中的数.所以最优情况下,答案中的数都是原数列中有的.b[]是a[]由小到大排序之后的数组令f[i][j]表示使前i个数成为不减的最小花费,而且第i个的高度为b[j].f[i][j]=min(f[i-1][k])+abs(a[i]-b[j]);1<=k<=nk从1~n递增,一…
solve:4/11 补题:6/11 A 机器人 补题:zz 这是一道分类讨论的题目,有一个规律就是如果必须要从第一个区到第二个区,那么最多转区两次(1到2一次,2到1一次),然后分类讨论即可,只要细心一定能做出来. //#pragma comment(linker, "/STACK:102400000,102400000") #include<iostream> #include<stdio.h> #include<stdlib.h> #inclu…
Bear and Big Brother 签到题,直接模拟就可以了. Bear and Friendship Condition 满足只能是每个朋友圈中每个人和其他人都是朋友,这样的边数的确定的. 然后并查集求每个朋友圈大小再判断是否合法就可以啦. #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> #define LL long long #define maxn 3…
传送门 Sitting in Line Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 293    Accepted Submission(s): 143 Problem Description 度度熊是他同时代中最伟大的数学家,一切数字都要听命于他.现在,又到了度度熊和他的数字仆人们玩排排坐游戏的时候了.游戏的规则十分简单,参与…
day1 100+95+0=195 T1 二分答案,并查集,很像noip2017 day2 T1 T2 缩环,然后数据结构维护求答案,貌似也是原题 T3 树形dp,比赛上没有做出来, day2 90+70++60=220 T1 dp随便维护一下,比赛上没看清题意,没有注意到-1的情况 T2 树链剖分,我打错一些细节,只有70分 T3 正解圆方树,要缩点双. 我一开始以为可以缩边双+树链剖分,结果水了60分 day3 30+10+10=50 T1 坑,被水淹没,不知所措. 亦或就相当于于交换,连边…