- 博客(44)
- 收藏
- 关注
原创 hihocoder 1078# 线段树的区间修改模版
#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef
2015-08-19 22:41:56 364
原创 codeforces 567C
mp2存放每个数当中间的数的次数,对每个数,如果有a[i]%k==0,那么ans就加上mp2[a[i]/k],mp表示这个数当第一个数的次数,对每个数,如果有a[i]%k==0,那么mp2[a[i]]就加上mp[a[i]/k]。#include#include#include#include#include#include#include#include#include#
2015-08-18 11:47:01 644
原创 codeforces 567D 二分
满足二分的条件,如果当前的断点不符合条件,那么后面的一定不符合条件,如果当前的符合条件,那么后面的可能还有符合条件的。二分的过程中对断点进行排序,判断每个区间能放多少船只,总和加起来,判断是不是小于k。#include#include#include#include#include#include#include#include#include#include#
2015-08-18 11:42:38 437
原创 uva 10168 哥德巴赫猜想
这题看了题解才知道,巧妙地利用了哥德巴赫猜想,即任意一个大于4的偶数可以分解为两个质数的和的形式。这题要分解成4个质数,显然如果n小于8的话是无法满足的。当n大于8的时候,应该凑成偶数的形式,比如当n是奇数的时候,先分解为2和3,剩下的肯定是大于4的偶数,当n是偶数的时候,先分解成2和2,剩下的两个质数暴力枚举它之间的质数看哪两个相加等于剩余的和就行。#include#i
2015-08-13 21:32:53 689
原创 uva 10006 费马测试不符合的数
能通过费马测试的但这个数不是素数的数叫Carmichael numbers,给你一些数,让你判断这个数是不是Carmichael numbers。n比较小,直接从2到n-1一个个测试就行。求a的n次方用快速幂运算。另外自己写的快速幂运算函数最好不要跟系统的函数重名,因为有时候参数类型不一致的时候它会调用系统的函数。。我就这里错了很多次但始终找不出原因。#include#inclu
2015-08-13 21:19:32 438
原创 uva 10110 平方数的因子有奇数个
这题就是判断给定的数的因子的个数,多写几个看看其实就知道了,只有平方数的因子个数是奇数,别的数的因子个数全部都是偶数。#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#defin
2015-08-13 21:12:17 383
原创 hdu 5108 求最大素因子
#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef
2015-08-13 11:25:37 576
原创 uva 10139 求n的阶乘能否整除m
n跟m的范围都是0-2^31,只能用质因数分解把m分成若干个质数相乘的形式,然后对每个质因数的数量判断n的阶乘中这个质因数的数量是不是足够,不够的话就不行。最后m可能是一个质数,没有被2到根号m中的质数分解,于是分解过后要是m还要大于n,这也不能分解,但是当n==0,m==1时是可以的,这种情况要特判。#include#include#include#include#i
2015-08-13 11:20:32 808
原创 hdu 1999
不可摸数Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10126 Accepted Submission(s): 2627Problem Descriptions(n)是正整数n的真因子之和,即小于n且整除n
2015-08-12 12:14:55 377
原创 hdu 2136 最大素因数的位置
求最大素因数在素数中排老几。预处理出素数就行,然后在筛选素数的过程中,把每个数对应的素因数记录下来,最后每个数的素因数肯定都是最大的,因为不断有更大的素因数取代这个位置,输出的时候用二分搜索查找位置就行了。#include#include#include#include#include#include#include#include#include#inclu
2015-08-12 11:35:14 380
原创 hdu 1085 面值为1.2.5的硬币不能组成的最小面值
给定面值为1、2、5的硬币的数量,求不能组成的钱的最小面值。母函数不会,用dp做的,其实就是多重背包。#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define me
2015-08-12 11:25:35 614
原创 hdu 1709 求天平不能称重的重量 动态规划
给定一个天平和n个砝码,每个砝码都有一个重量,求出从1到这些砝码的总和之间不能被天平表示的重量。天平可以两端放砝码。动态规划做法,看网上都是母函数,真心不懂。。dp[i]如果是0表示这些砝码不能称重i重量,如果是1表示能称重i重量。对于每个砝码,假设当前砝码重量是b[i],那么j从最大值开始,减小到b[i],如果存在一个dp[j-b[i]]为1,说明当前的j能被组成。
2015-08-12 11:21:00 748
原创 hdu 1028 对某个数n的m划分数
Ignatius and the Princess IIITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15687 Accepted Submission(s): 11063Problem Description
2015-08-12 10:34:36 453
原创 poj 3070 斐波那契数列
FibonacciTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10964 Accepted: 7795DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, andFn = F
2015-08-10 17:35:19 445
原创 埃氏筛选与线性筛选求素数
//埃氏筛选法 复杂度O(nlognlogn)#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))usin
2015-08-10 16:26:39 597
原创 快速幂运算
#includeusing namespace std;typedef long long ll;ll pow(int a,int n){ ll res=1; while(n) { if(n & 1)res=res*a; a=a*a; n>>=1; } return res;}int mai
2015-08-10 16:22:35 355
原创 poj 2229 动态规划
SumsetsTime Limit: 2000MS Memory Limit: 200000KTotal Submissions: 14447 Accepted: 5763DescriptionFarmer John commanded his cows to search for different sets of nu
2015-08-10 10:26:45 369
原创 poj 1067 取石子游戏
取石子游戏Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 37035 Accepted: 12559Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二
2015-08-09 22:06:56 341
原创 hdu 1846 博弈
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。当然,除了“勇敢”,我还希望看到“诚信”,
2015-08-09 21:59:52 363
原创 hdu 2516 博弈
这题我写的时候试到了13这个数字,然而在8的时候分析错了。。导致没看出规律。。后来搜了一下才发现是斐波那契。。#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x)
2015-08-09 21:19:47 364
原创 hdu 1564 博弈
其实是瞎猜的,尽然猜对了。。看网上的做法,可以给n*n的地面上铺上2*1的地面砖,如果n是偶数的话可以全部竖着铺满,如果是奇数的话最后一行要横着铺一些,只剩下起始位置没铺,最先进入地面砖第一个格子的人肯定就是胜者了,因为另一个人永远都有第二个格子可以走。。#include#include#include#include#include#include#include
2015-08-09 21:14:32 365
原创 hdu 1847 博弈
类似于给定K个数字然后取硬币的游戏,每次取得硬币数量必须是给定的K个数字里面的。参考《挑战程序设计竞赛》,可以利用动态规划的方法进行递推。轮到自己的时候要是没有硬币了,肯定是必败态。如果存在一个i,j-a[i]是必败态的话,j就是必胜态。(让对手进入必败态)。如果所有的i,j-a[i]都是必胜态,那么j就是必败态。(竟然找不到可以让对手必败的状态!完了我要输了)。#incl
2015-08-09 21:07:43 359
原创 拓展欧几里得算法模板
暂时还不明白,留着以后慢慢明白。#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace st
2015-08-08 22:38:27 324
原创 uva 437 动态规划
给定一些立方体,每种立方体有长宽高三个属性,可以任意变换摆放姿势,每种立方体有无限个,要把其中的一些摆起来,求最大的高度。要求在上面的立方体必须底部的长宽都小于在下面的立方体的顶部的长宽。可以把一个立方体当成三个存到数组中,x,y,z轮换着当高,剩下的两个随便当长或者宽就行。先把他们按照面积从小到大排序,因为面积大的一定在面积小的下面,这样就避免漏掉一些。然后就是类似于求最长上升子序列
2015-08-08 12:40:21 432
原创 uva 1626 添加最少的括号使得括号匹配
添加最少的括号使得括号匹配,并将括号匹配后的结果输出,可能有空串,所以输入的时候要用gets();#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) mems
2015-08-08 12:24:06 961
原创 uva 116 数塔 动态规划
横着的数塔,从左往右走,可以走右上,右,右下三个方向,最后一行往右下走可以穿越到第一行,第一行往右上走可以穿越到最后一行。最后要求输出走的路径以及路径和的最小值,如果存在多种路径,输出字典序最小的那个。输出路径的字典序最小,要从右往左加,加的时候记录路径,这样可以使得路径的字典序最小,如果从左往右加的话最后一列如果有多个相同的最小值,不能确定那一条路径的字典序最小,他们可能是按照不同的路径
2015-08-08 12:15:16 359
原创 uva 10003 动态规划
给定一个长度为len的木板,要在n个位置处切开,每次切开的代价是这块木板的长度,求最小的代价。其实切木板跟合并木板是等价的。。开始以为是简单的贪心,便写了一个优先队列的贪心算法,果断就给wrong了。后来想到不能随便取啊,得是相邻的才能合并啊,果断写了合并相邻木板的动态规划才算给过了。#include#include#include#include#includ
2015-08-08 11:10:25 427
原创 uva 11584 动态规划
给定一串字符串,看最少能把它分成几个回文字符串。SampleInput3racecarfastcaraaadbccbSampleOutput173dp[i]=min(dp[j]+1);(i~j为回文)。开始一看数据是1000,没敢写,去网上看了看都是这样做的,只好也跟着这样做,本以为是O(n^3)的复杂度,现在看来
2015-08-08 10:58:10 422
原创 hdu 2955 动态规划
RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16258 Accepted Submission(s): 5954Problem DescriptionThe aspiring Roy th
2015-08-08 10:45:47 353
原创 hdu 1199 Color the Ball
Color the BallTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5010 Accepted Submission(s): 1243Problem DescriptionThere are infin
2015-08-06 12:43:39 630
原创 hdu 5249 KPI set与其迭代器的运用
KPITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 916 Accepted Submission(s): 402Problem Description你工作以后, KPI 就是你的全部了. 我开发了一个服务
2015-08-05 23:04:55 441
原创 poj 1065 贪心或者动态规划
Wooden SticksTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 19566 Accepted: 8255DescriptionThere is a pile of n wooden sticks. The length and weight of
2015-08-05 16:53:30 471
原创 hdu 1081 最大子矩阵和
#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long lon
2015-08-04 20:44:14 333
原创 hdu 2643 拓扑排序加优先队列
RewardTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5345 Accepted Submission(s): 1621Problem DescriptionDandelion's uncle is a
2015-08-04 16:58:12 479
原创 poj 3259 最短路径spfa判断是否有负环
只要有负环就可以在里面循环好多次,然后攒够了足够的时间就可以随便找一条路回家啦#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeo
2015-08-04 11:28:34 432
原创 codeforces 25C. Roads in Berland
有n个城市,每个城市都能到达别的城市,n*n的矩阵表明i到j城市的最短距离,现在要建造一些新的道路,在两个城市之间。问每次建造这些道路之后每两个城市之间的距离之和为多少。如果新建的道路比当前的最短道路要长,那么总和不会更新,如果要短的话,那么要把当前道路最短距离更新。同时枚举其他各个城市之间的距离有没有变小。假设t1到t2之间距离更新了,对于任意两个城市i,j,要比较一下从i到j的最短距离
2015-08-03 14:17:37 756
原创 poj 3181 动态规划
Dollar DayzTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4840 Accepted: 1842DescriptionFarmer John goes to Dollar Days at The Cow Store and discovers
2015-08-03 14:05:25 368
原创 poj1742 动态规划 经典多重背包
有n种不同面值的硬币,面值各为A1,A2,A3。。AN,数量各为C1,C2,C3,,,,,CN。给定数m,问这些硬币能组成小于等于m的数中的哪些数,输出这些数的数目。开始想的是从1到m判断每个数是不是能被这些硬币组成,但是判断每个硬币的数量的时候出现了问题,难以统计每种硬币使用的数目,后来去网上搜了搜,发现可以以每种硬币为开始,把每种硬币能组成的数记录下来,这样在统计每种硬币数目的
2015-08-03 11:23:43 908
原创 hdu 5339 动态规划或者dfs
UntitledTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 751 Accepted Submission(s): 403Problem DescriptionThere is an integer a
2015-08-03 10:08:59 422
原创 hdu 2544 spfa算法模板
#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long lon
2015-08-01 12:44:22 343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人