- 博客(11)
- 收藏
- 关注
原创 凸包
#include <stdio.h> #include <algorithm> #include <iostream> #include <string.h> #include <math.h> using namespace std; const double eps = 1e-8; int sgn(double x) { i...
2018-04-02 21:29:45
162
原创 How Many Answers Are Wrong (带权并查集)
题意:给出一些区间和的值,询问最少会有多少个值是错的,如果不能确定是对是错的就算是对的。思路:用带权并查集来做,输入u,v,w代表区间u到v的区间和为w。用并查集来检查u,v是否在同一个集合,如果在同一集合,说明我们之前已经有了u,v之间的关系,而现在输入的u,v,w就用来检查之前的关系是否和现在输入的一致,如果不一致,肯定就错了。如果不在同一集合,那么就可以更新关系了。带权并查集中的权值存的是该...
2018-04-01 20:06:27
128
原创 Doing Homework (状压dp)
题意:给你n门课的名字和完成这门课所需要的时间和这门课规定完成的时间,每超过规定的时间一分钟就多扣一分,问题是按怎样的顺序的去完成这些课才能扣最少的分,输出所扣的最少的分和课表顺序。思路:状态过多,如果用搜索的话,n最大为15,会超时。因此想到用状态压缩动态规划。状态压缩就是用位数为n二进制来表示n门课的选择情况,1表示选了,0表示还没选,再用动态规划来找出课被选完时扣掉的最少的分。用path数组...
2018-03-28 22:37:41
259
原创 Jury Compromise (动态规划)
题意:从n个人中选出m个人,选法为控方满意度之和s1与辩方满意度之和s2的差的绝对值最小,若有多种方案,则选择控方满意度之和s1与辩方满意度之和s2的和最大的一组,先输出这是第几组数据,下一行分别输出选择出来的方案中的控方满意度之和s1与辩方满意度之和s2。最后一行输出选择的人的编号,按从小到大的顺序排列。思路:用一个二维dp[i][k],第一维i代表已经选择了的人数,即1——m,第二维k代表枚举...
2018-03-28 21:43:32
671
3
原创 Phalanx 动态规划
题意:找出以从左下角到右上角的对角线为对称线的最大的矩阵。思路:dp[i][j]表示以i,j为左下角顶点的最大对称矩形,则如果从i,j出发的向上和向右的线上相对称的点多于dp[i-1][j+1],则dp[i][j]=dp[i-1][j+1]+1.#include <stdio.h> #include <string.h> #include <math.h> #i...
2018-03-28 11:28:14
281
原创 区间dp,Treats for the Cows
题意:输入n个数,每次从这n个数的两端选一个数,sum就加上这个数的值乘上这个数取出来的时间。问最后sum最大是多少。思路:没次从两边取一个数,可以考虑区间dp,用一个dp数组,dp[i][j]代表当仅剩下区间i到j的数没取的时候sum可以取到的最大值。#include <stdio.h> #include <string.h> #include <math.h>...
2018-03-23 17:48:41
125
原创 区间dp,从数组两端分别选数
两个人分别从一个数组两边选数,都考虑让自己的最优情况,如果A先选,A能选到的最大和是多少#include <bits/stdc++.h> using namespace std; #define RE(x) freopen(x,"r",stdin) #define WR(x) freopen(x,"w",stdout) #define INF 0x3f3f3f3f #define C...
2018-03-23 17:20:04
729
原创 快速冥
typedef long long ll; ll mod_pow(ll x,ll n,ll mod) { ll res=1; while (n>0) { if(n&1) res=res*x%mod;//n&表示n/2 x=x*x%mod; n>>=1;//位运算,表示n/2 } retu
2017-09-04 16:03:00
619
原创 HDU 2032 杨辉三角
还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Input 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1 Output 对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一
2017-09-03 15:02:29
135
原创 HDU 2031 进制转换
输入一个十进制数N,将它转换成R进制数输出。 Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。 Output 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 Sample Input 7 2 23 12 -4 3 Sample
2017-09-03 14:01:30
139
原创 HDU 2030 汉字统计
Problem Description 统计给定文本文件中汉字的个数。 Input 输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。 Output 对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。 [Hint:]从汉字机内码的特点考虑~ Sample Input 2 WaHaHa! WaHaHa! 今年过节不说话
2017-09-03 13:12:27
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人