acm
luxxxxxxx_
这个作者很懒,什么都没留下…
展开
-
Sunscreen (poj 3614 贪心+优先队列)zai
题意:有c头牛晒太阳,每头牛都有一个能承受辐射的范围(min~max),现在有 l 种防晒霜,每种防晒霜都能将辐射值固定在spf,每种防晒霜都有一定的数量num。每头牛用最多一种防晒霜,问能满足多少斗牛。思路:贪心,首先防晒霜按照spf从小到大排序,牛也按照能承受的最小值从小到大排序。然后对于每种防晒霜 将牛的最小值 小于等于 该种防晒霜spf值的牛入队列(只如它承受范围的最大值),然后较转载 2017-12-20 14:11:34 · 186 阅读 · 0 评论 -
poj 2718 Smallest Difference
题意:有一列数,对其任意分成两组,每组按一定顺序可以组成一个数。 问得到的两个数的差最小是多少。要想两个数的差最小,就是对半分,暴力比较求最小值。关键就是用next_permutation()函数求这列数的全排列,排除前导零的情况。题目链接:点击打开链接#include#include#include#include转载 2017-12-18 00:44:48 · 146 阅读 · 0 评论 -
next_permutation测试
今天做poj 2718 wa的一血 2718的一些坑1 中间二分判断 中间a[mid]肯定不能为零 为零位数都不会一样(逃qaq)2 a[0]也不能为零不会排列的下看#include#include //包含next_permutationusing namespace std;int main( ) {int n, p[10];scanf("%d", &n);for原创 2017-12-18 00:55:52 · 142 阅读 · 0 评论 -
快速幂运算总计
首先我们设题目要求为a^b mod cint quickMod(int a, int b, int c){ int ans = 1; while (b) { if (b % 2 == 1) ans = (ans * a) % c; b /= 2; a = (a * a) % c; } return ans;}这个算法的时间复杂度为O(logn)if原创 2018-01-02 01:12:06 · 277 阅读 · 0 评论 -
一往直前!贪心法 区间 poj 2376解题报告
wa了几发的弱鸡来写结题思路了这是某位dalao的思路我在上面盖了盖#include #include using namespace std;int N, T;const int MAX_COWS=25005;struct Cow{ int begin; // 开始时间 int end; // 结束时间}cow[MAX_COWS];bool is_grea原创 2017-12-19 15:31:57 · 188 阅读 · 0 评论 -
poj 2429(因子分解 再处理一下因子即可)
http://blog.csdn.net/water_glass/article/details/6734501http://blog.sina.com.cn/s/blog_69c3f0410100uac0.html原创 2017-12-30 10:46:04 · 177 阅读 · 0 评论 -
hdoj小数转化为分数
www这个题虽然,没啥难度 但也不以理解....某位大神的答案strlen是所有字符串的长度#include<cstdio>#include<cmath>#include<cstring>char str[20];int gcd(int n,int m){ int i; while(m) { i=n%m; n=m; m=i; }...原创 2017-12-30 15:08:21 · 273 阅读 · 0 评论 -
二分法
#include#include#includeconst int MAXN=10000;const long INF=100000;double L[MAXN];int N,K;int Tdfs(double x){ int num=0; for(int i=0;i<N;i++) num+=(int)(L[i]/x); return num>=K;}int main原创 2018-01-19 14:46:32 · 594 阅读 · 3 评论 -
poj 2785 让和为0 暴力&二分85
poj 2785 让和为0 暴力&二分大意是输入一个n行四列的矩阵,每一列取一个数,就是四个数,求有多少种着四个数相加和为#include#include#includeusing namespace std;int a[4001],b[4001],c[4001],d[4001];int ab[4000*4000+1],cd[4000*4000+1];int k2;i原创 2018-01-21 01:08:41 · 170 阅读 · 0 评论 -
POJ 3461
https://www.cnblogs.com/ljxahjh100/p/5699080.html原创 2018-01-01 01:30:12 · 113 阅读 · 0 评论 -
POJ3050-Hopscotch
题意:给定一个5*5的地图,每个格子上有一个数字。从一个格子出发(上下左右4个方向),走5步将数字连起来可以构造出一个6位数。问该地图可以构造出多少个不同的6位数。分析:可以对每个格子做深度优先遍历,构造出所有数字,但要注意不要重复计数。在这里,我使用了set来保存已构造出的数字,结果就是set中的元素个数。#include #include using转载 2017-12-17 16:41:36 · 112 阅读 · 0 评论 -
POJ3187 Backward Digit Sums 【暴搜】杨辉三角
DescriptionFJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N <= 10) in a certain order and then sum adjacent numbers to produce a new list with one few...原创 2017-12-17 14:48:41 · 150 阅读 · 0 评论 -
poj 2542 题解
题意: 一个校园内的所有学生都有宗教信仰,现在要做一个调查,你不能直接问每一个学生,但是可以通过询问他的朋友是否和他的宗教信仰一样,最后需要统计出这个校园内有多少不同的宗教信仰。 输入有多组测试数据,每组开头是两个数,n和m,分别表示学校有n名学生和m组询问。后面是m行询问。最后当n和m都为0的时候停止。 思路: 很明显的并查集问题。将一样的宗教信仰的集合合原创 2017-12-23 20:20:40 · 237 阅读 · 0 评论 -
AOJ0189
题意求某一办公室到其他办公室的最短距离。 多组输入,n表示n条关系,下面n次每次输入 x y d表示x到y的距离是d。需要注意的是n没有给定,需要根据输入来求。 输出办公室的编号和距离。思路任意两点之间的最短距离用floyd算法比较合适。代码#include #include #include using namespace std;原创 2017-12-23 23:20:06 · 362 阅读 · 0 评论 -
poj 2139
http://poj.org/problem?id=2139题目好烂 再次吐槽 我都没看懂orzn头奶牛,m部电影,每部电影告诉你是哪几头奶牛.如果两头奶牛在一起出演就相互度=1,如果两头奶牛没有一起出演过,但是同时跟第三头奶牛出演过,那么这两头奶牛的相互度就等于他们与第三头奶牛的相互度之和。要求输出牛的最小平均分开度的100倍。这题目也够难懂得。最坑爹的地方是没有给出输出的格式,不知道是原创 2017-12-24 00:18:08 · 180 阅读 · 0 评论 -
POJ 3421`
https://www.cnblogs.com/ZhaoPengkinghold/p/3891845.html原创 2017-12-31 00:28:25 · 166 阅读 · 0 评论 -
POJ 3421 X-factor Chains 题解 《挑战程序设计竞赛》
因子链:将一个数X分解成从1到X的数列,前一个数可以整除后一个数,求最大链长和链的个数。比如10的约数是2和5各一个,那么最大链长就是2,到底有几个链呢?其实就是质因子们的排列组合——∏(质因子个数的阶乘)/(每个质因子的个数的阶乘)。只要我把它们排好了,顺序乘起来就能得到一条独一无二的链。比如 100 =2*5*2*5 四就是最长子集 其中有2525 5252 2255 5522原创 2017-12-31 08:58:57 · 221 阅读 · 0 评论 -
C++ STL算法之accumulate函数
用来计算特定范围内(包括连续的部分和初始值)所有元素的和,除此之外,还可以用指定的二进制操作来计算特定范围内的元素结果。其头文件在numeric中。 #include using namespace std;int main(){ vector q; for(int i=0;i<21;i++) { q.push_back(i); } int原创 2017-12-31 09:23:12 · 334 阅读 · 0 评论 -
暴力求字典序
#include using namespace std;int main(){char str[30];cout cin >> str;cout cout cin.get();return 0;}原创 2017-12-17 13:38:41 · 193 阅读 · 0 评论 -
Sunscreen (poj 3614 贪心+优先队列)
题意:有c头牛晒太阳,每头牛都有一个能承受辐射的范围(min~max),现在有 l 种防晒霜,每种防晒霜都能将辐射值固定在spf,每种防晒霜都有一定的数量num。每头牛用最多一种防晒霜,问能满足多少斗牛。思路:贪心,首先防晒霜按照spf从小到大排序,牛也按照能承受的最小值从小到大排序。然后对于每种防晒霜 将牛的最小值 小于等于 该种防晒霜spf值的牛入队列(只如它承受范围的最大值),然后较转载 2018-01-30 10:07:08 · 161 阅读 · 0 评论