- 博客(27)
- 收藏
- 关注
原创 玲珑杯 round#5 C Coco
点击打开题目题意:给出n个数,再给一个a;求a mod n个数中等于0时,可以使用的最少的数,不能==0则输出-1.题解:如果x则 x%y==x;无意义,所以要把所有的数降序排序,然后枚举。从大向小依次取mod。 用bfs 第一次找到的就是最少步数。用dfs 也能过,但是有人说T了, 但是还是有好多人也过了。#include#
2016-11-29 00:39:29 227
原创 hpuoj 1192 Sequence
点击打开题目排列组合,就是依次找出每种价值的排列数。其实递推一下,b[n]表示每个数出现的次数。用c[n];表示从1-n c[i]==价值i的组合数。c[i]=pow(2,b[n])-1*c[i-1];当然前面的还要保留。超int 用 long long代码:#include#define ll long longusing namespa
2016-11-28 17:08:08 439
原创 zstuoj 4248 KI的目标
点击打开题目题意:建立一棵树,每个节点有对应的价值,和花费。价值小于等于话费,才合理,否则删掉。问这棵树最后有多少节点。题意:用邻接表,然后用深搜从根节点1 往下遍历。如果sum#include#define ll long longusing namespace std;const int maxn=100000+100;struct
2016-11-27 13:14:07 219
原创 玲珑被 round#5 1063 Variance
点击打开题目最原始的线段树然后推个方差公式。#include#include#include#include#define LL long longconst int maxn=2<<18;using namespace std;LL a[maxn];LL sum[maxn];void pushup(int rt){ sum[rt]=sum
2016-11-26 20:15:00 191
原创 哈尔滨理工 oj2293 棋盘村
题目链接 简单递推。 a[i][j]=a[i-1][j]+a[i][j-1]; 当然,如果遇见马贼,或到马贼一步距离的位置 为0;#include <bits/stdc++.h>#define ll long longusing namespace std;const int maxn=30;int T,n,m,x,y;int dir[8][2]={1,2,2,1,1,-2,2,-1,
2016-11-26 19:51:54 200
原创 玲珑杯 round#5 J just for Fun
点击打开题目链接题意: 输入两个数,n、 p 如果 p=np; Y else N题解:直接分情况,第一个数是否是1.第二个数是否是0;如果是的话,Y。否则N但是两个数可能是整数,可能是小数,而且精度爆double。所以用字符串。#include#include#include#include#
2016-11-26 18:55:20 251
原创 zstuoj 4246 萌新吃果果
点击打开链接输入的时候直接构造序列,O(n)。#include#define ll long longconst int maxn=100000+100000;char team[maxn];using namespace std;int main(){ int T,ans,n,k,i,j,t; char c; scan
2016-11-24 11:27:06 268
原创 zstuoj 4245 KI的斐波那契
点击打开题目链接先将f(0)-f(90)所有数的长度存下来;然后可以每次取a长度,向前依次取,b位数,一定是在f(n-1) or f(n-2) 依次向前找,一定能找到f(0) or f(1) 即 a or b #include #define ll long long using namespace std; int main(){
2016-11-24 00:20:02 237
原创 zstuoj 4243 牛吃草
点击打开 题目 链接一道数学题,弧adc将圆分成两半。牛吃的那一部分面积即为扇形BCDA+扇形OAC-三角形AOB+三角形COB。扇形面积公式S=(l*r)/2;已知 l 、r。设 R;能表示出 牛吃的草的面积。从0-1e5 二分逼近求R。#includeusing namespace std;const int maxn=1010;const
2016-11-23 19:59:03 745 2
原创 zstuoj 4242 校庆 4244 众数
点击打开链接我用暴力过的,虽然优化了一点,虽然和题解思路一样,但是还是不得不佩服题解的算法,我真的不知道。。。。这个公式很值得借鉴。int delta(int y, int m, int d){ //从公元1年1月1日至今几天 return ((y-1)*365 + (y-1)/4 - (y-1)/100 + (y-1)/400) + Day[judge(y)][m-1]
2016-11-22 14:00:27 290
原创 zstu 4240 极差 zstu oj 4238 Save the Princess
zstu oj 4238 Save the Princess水题, LYF先手,BH后手 先手如果直接能找到公主,一定赢。 否则,就是n>=3 的情况。 那么,谁要是能把情形变成 两个怪物包围一个公主,那么此人必胜。 两人一人一次。判断奇偶就行。//A Save the Princess#includ
2016-11-22 13:52:49 329
原创 hdu 5983 Pocket Cube
题目:点击打开链接这题真是让我心塞,,,,,刚开始拿着这个题,觉得很简单的题,让队友写,结果他写一遍没过, 我就想,这么简单都没过,,,,,我就自己写了一遍。也错了 gg。倍受嘲讽。 主要犯了两个错误,第一。 竟然必须要是6个颜色,,,,,,,,,,T_T...第二。 刚开始写的时候用数字,下表写错了两个。。。。模拟能力太差。。#include#
2016-11-21 15:15:19 788 3
原创 hdu 1698 Just a Hook
点击打开题目链接超级简单的线段树,我却写了好长一会儿!。。。都是m>>1 忘记加括号()的锅。。。。成段更新引入一个数组,成段改变对应该变量记得在向下更新,因为只有一次查询,查询全部,sum【1】 即为所求#includeusing namespace std;#define maxn 111111#define LL long longi
2016-11-19 20:51:53 278
原创 hdu 5982 Relic Discovery
点击打开题目链接超级水题,求和。。。因为要检查博客数量。。。顺便水一篇吧。。。。#include#define LL long longusing namespace std;int main(){ int T,n; cin>>T; while(T--){ cin>>n; LL ans=0,a,b;
2016-11-19 19:36:28 682
原创 hdu 5984 Pocky
点击打开题目链接这题,,开始还在想推公式,,,推了一会儿也没推出来,然后我就发现了第2个样例 0.6.....第3个 两倍第4个 三倍.。。然后 突然想到是ln2,。。。。。然后忘记 rwo 一发#include#define LL long longusing namespace std;int main(){
2016-11-19 19:29:36 1253
原创 nsoj 4714 次方求模
点击打开题目链接快速幂。如果幂是偶数,除2 底乘2否则 结果乘底#include#define maxn 11111#define LL long longusing namespace std;int main(){ int T; LL a,b,c; scanf("%d",&T); while(T--){ scanf("%ll
2016-11-18 17:11:38 230
原创 poj 2528 Mayor's posters
题目链接点击打开链接这一题可以算是我写的时间最长的一题了。。。。为啥呢, 因为我刚开始写水题时候就无意看见这一题,,,果断暴力,,,死翘翘,,然后没一点思路,根本不会写。所以放在哪,一直都没写。。。。最近在写线段树专题,,又碰上这题,,,,这次不能在放过了。题意:一个无限长度的墙,有n个人往墙上贴海报,给出每个人贴海报的位置,和先后顺序。问最后墙上能看见多少海报。
2016-11-18 15:52:15 232
原创 cf 734 div2 A,B,C
题目链接:1. A2. B3. C A 题,字符串遍历, B 题 也是a+b,凑数, C题, 枚举+二分, 依次枚举第一种魔法的使用,然后二分查找最佳的第二种魔法。A#includeusing namespace std;int main(){ int n,an=0,dn=0; char a[100010]; scanf
2016-11-16 13:59:09 205
原创 poj 3468 A Simple Problem with Integers
~~~~题目链接!!!!线段树。模板题。首先 建树,申请两个数组来存,一个存区间的和,一个来记录每次变化的数值。pushup()build()upda()query()上面是基础的线段树查询模板,题目要求的是区间内所有数值的改变,如果直接套这个模板的话超时是必然的。那我们怎么来搞这个区间改变呢。反正我自己是没实现,,,。。。。我们增加一个函数
2016-11-15 23:32:05 209
原创 冰法斗神龙 (贪心)
题目链接本来是给新生写的,新生没人写出来,我就写一下试试,结果wa了好几次。。。。思路还是很清晰地, 一个经典贪心。首先,cd-冰冻时间是技能的实际cd时间。 所以,当实际cd==0 时, 如果该技能攻击大于0 直接YES。 当实际cd技能储存,攻击相等时,实际cd最短的。然后根据 技能攻击/实际cd 排序。每次取最优技能,
2016-11-15 14:20:11 846 4
原创 hdu 5969 最大的位或
题目链接首先是找出来它们两个的二进制表达式,尽可能给长的补更多的1。所以 从高位到低位依次找,找到不同的之后,全部都是1.第一次写分情况,最后样例没错,也没发现拿错了。后来仔细推推发现一种情况就行了。 才发现了一个错误,我计算二进制的值之这样写的(2所以最后改成(LL)pow(2,i)。代码如下:#include#define LL long longusing n
2016-11-12 23:53:28 343
原创 nsoj 4647 表达式求值
题目链接要写数据结构作业,之前写过这个,今天又从新写了一遍。主要是用栈,两个栈,一个存数,一个存运算符,根据运算符的优先级写一个判断函数。然后把表达式从左至右一次存进去,遇见优先级高的直接计算,遇见括号内的直接计算之后再把栈倒着读出来依次计算#includeusing namespace std;int judge(char c){ if(c
2016-11-12 20:16:23 272
原创 hdu 5974 A Simple Math Problem
点击打开题目链接已知a+b 和 a*b 所以由此可以直接表示。输入x,y 所以gcd(x,y)==gcd(a,b)所以 联立 a+b=x a*b/gcd(x,y)=y最终 得出来一个二元一次方程。首先 方程要有解,然后判断是否成立。#include#define LL long longusing namespace std;LL gcd(LL a
2016-11-06 22:58:31 535
原创 hdu 5978 To begin or not to begin
点击打开题目链接判断奇偶。。。。。。。。超级大水题。#includeusing namespace std;int main(){ int n; while(~scanf("%d",&n)){ if(n&1) printf("0\n"); else printf("1\n"); } return 0;
2016-11-06 22:52:31 498
原创 hdu 5979 Convex
题目链接超级水题,直接求面积就可以了。S=1/2*a*b*sin(c);#include #include #include #include #include #include #include #include #include #include #define inf 0x6fffffff#define LL long long#define mem(p,
2016-11-06 22:48:51 559
原创 hdu 5980 Find Small A
Find Small A开始看大家都秒A , 我就写了一个很zz 的代码,交上了,秒W。。。。。后再仔细看看题,原来是这样。输入一个int 型,占四个字节,而每个字符一个字节。所以一个int 等于输入四个字符,每个字符占二进制八位,然后请遍历所有“字符”问有多少个‘a’;#includeusing namespace std;int main(){ long
2016-11-06 22:43:48 762
原创 hdu 1754 I Hate It
hdu 1754 I Hate It线段树,我学习的是KUANGBIN 大神的模板吧,,,void PushUP(int rt){ sum[rt]=max(sum[rt<<1],sum[rt<<1|1]);}void build(int l,int r,int rt){ if(r==l){ scanf("%d",&sum[rt]);
2016-11-04 13:58:17 188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人