自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(292)
  • 收藏
  • 关注

原创 2016 杭州 ccpc 铜牌旅游经历

和14学姐,15学弟参加了ccpc杭州站,然后弱菜因为实习太久,手生,打了个铜,羡慕同行的河工大银牌选手.10.16晚上11点53的车,很拼~到点睡觉10.17噩耗,路上遇到施工结果晚点了三个多小时...路上和学妹说起来以前的经历:有时候铜牌题就是出不来,就开银牌题,可能这次就是这样然后打了铜。然后下午五点才到,到hdu附近都已经六点啦,到宾馆约了zufe的一个朋友吃个饭,发觉杭州

2016-10-20 16:43:46 1328 2

原创 “玲珑杯”acm比赛-试运行赛 部分题解

1005.水题,唯一难点是明白题意。每次加入一个字母,判断其RP值为多少位,那么之前的余数ans就要乘几个10(为了拼接在后面),接下来对101取余,依次做完即可。#includeusing namespace std;char s[52000];int main(){ int t; scanf("%d",&t); while(t--) {

2016-07-30 14:49:21 1271

原创 JAVA DVD管理系统

在7.16号打完CCCC就赶来北京参加学校安排的为期二十天的大数据培训。我来的时候刚好是java基础的末尾。来搞了一个java基础的简单项目。很low的那种。源码如下:DVD类public class DVD { int ID;//编号 String st="可借";//状态 String name;//名字 String date=null;//已借出日期; int cou

2016-07-19 15:03:46 6001 1

原创 hdu 5700 区间交

由于太傻比勒以为题目说的区间交是随便的,比如4个区间交可以分解了两个22区间交...不会做,后来才知道答案区间必然是k个区间交啊。所以我们可以直接枚举答案区间的起点,采取尺取法,set,优先队列都可以。枚举到起点i后待选区间就是所有起点大于切终点小于i的。为了使区间值最大,我们可以把终点小的扔掉,区间更长显然更大因为起点都是一样的。然后只有k个区间的时候找到最小的终点就好了。弱采用的优先队列写

2016-05-24 11:02:17 580

原创 lightoj 1421 - Wavio Sequence LIS变形

题目求一个长度为奇数的序列,然后这个序列里面前半部分升序后半部分降序,中间那个值是最大的,求最大长度。首先序列可以拆分成一个升序,一个降序序列,然后因为中间值在两个序列中都有,所以就是中间点是可以O(n)枚举的,我们要求的就是以i为中点的情况下长度最长,也就是以i为终点的最长上升子序列和以i 为起点的最长下降子序列,因为要求两端序列长度相等,所以答案就是其中的最小值*2-1。LIS有nlo

2016-05-20 20:03:12 472

原创 lightoj 1283 - Shelving Books DP

给定n个书本的厚度,然后依次放到书架上,要么放在最左边要么放在最右边,或者不放,要求书的厚度是非递减的序列。然后问最多放置多少本书。数字范围10^5,但是只有100个数字,我们先离散化一下。然后对于放置一本书来言,就是要么增大下界,要么减小上界,或者上下界都不变。那么我们可以采用dp[i][j]代表当前下界为i上界为j最多放置多少本书。对于一个新的书,就是产生dp[a[i]][j]

2016-05-18 17:38:56 576

原创 lightoj 1007 - Mathematically Hard 欧拉函数

求a,b之间的欧拉函数的平方和。直接筛选法求出欧拉函数,然后来个前缀和。注意会爆ll,开成ull#includeusing namespace std;#define N 5010000#define ll long long#define ull unsigned long longint phi[N+20];ll ans[N+20];void euler(){

2016-05-10 17:33:28 357

原创 lightoj 1326 - Race DP

给定n匹马赛跑,每两匹马之间会产生三种结果,分别是和,A胜、A负。然后问n匹马之间有多少种结果。因为每匹马都是不同的,然后因为有名次并列,所以i匹马可能只有j个排名。(j#includeusing namespace std;#define mod 10056int dp[1200][1200];int ans[1200];int main(){ int t,n;

2016-05-06 19:53:12 455

原创 MS三轮面试总结

之前接到了MS的面试邀请,然后因为要上课当时就回复了在线面试,然后竟然在线面试和现场面试一个时间。弱的面试有三场,11点、1点和三点,每场大约45-55分钟。第一轮:自我介绍,然后对方显然是懂ACM的,说ACM的人算法和数据结构没什么问的,就问一些实际问题。问了三个问题,第一个是excel里面的列是A-Z,然后AA-AZ这样的,就是给一个数字,问列号是啥样的。简单模拟...就是列号从1开始

2016-04-27 16:41:50 883

原创 zzuli 第八届校赛 题解

准备了一个月的校赛终于没白费工夫,拿到了冠军...但是只过了9题...因为我字符串学的太差C题没过...这套题说起来没有去年的好,虽然我去年打的不好吧。原题三四个...还有一道比较难的数论没放出来....说起来花了五分钟就推出来公式了....导致最后两个小时都没题目做...A.模拟注意坑点有过程中某个值爆了int然后在凑出来一个0-255的数字,还有就是连续两个点..B.DP

2016-04-18 13:16:45 912

原创 lightoj 1253 - Misere Nim Nim博弈

给定n堆石子,双方轮流游戏,可以任取一堆的任意个,谁拿走最后一个谁输,A先手。Nim博弈跑完发现如果都是1的结果刚好不对...纯1的情况只能通过有多少堆来判断....#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define i

2016-04-14 09:27:54 531

原创 lightoj 1247 - Matrix Game Nim博弈

给定一个矩阵,两个人轮流玩游戏,每次每个人可以选择一行,然后从这一行里面的每一堆里都选择一些石子拿走,拿完赢...问先手是否必胜。其实把行里面的所有石子合并也是可以的,转化为标准的Nim博弈问题。#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000

2016-04-13 20:39:14 418

原创 lightoj 1192 - Left Right Nim博弈

给定n对点,每一对点中第一个点向右走,第二个点向左右,不能跨越...谁不能走谁输...问最后谁赢。把一对点的可以走的距离当成石子数量,就变为NIM博弈了..同上一个题目#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define

2016-04-13 20:30:36 587

原创 lightoj 1186 - Incredible Chess Nim博弈

把每一列的棋子间隔(可以走的)看成Nim博弈中的石子数量,那么答案就所有差的异或...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N 100100int a[123],b[

2016-04-13 20:23:45 513

原创 lightoj 1275 - Internet Service Providers 一元二次方程

求T(C-N*T)答案最小的T的取值。方程展开是-NT*T+T*C...那么T的取值为-(-N*2)/C,负号化简...最后要输出整数,而这个可能会是小数...要判断一下T+1的情况...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 100000

2016-04-13 19:50:01 360

原创 lightoj 1369 - Answering Queries 数学

对于所有的i>j都有sum+=a[i]-a[j],有n个数字q次修改或查询,1代表查询当前sum值,0 u v代表a[u]=v;之前做过无修改的,有修改的只是多了一点点操作...对于每个数字来言,他被加上了n-1-2*i次,i从0开始..#includeusing namespace std;#define ll long long#define ull unsigned lon

2016-04-13 19:27:46 321

原创 lightoj 1354 - IP Checking

给定一个十进制的IP地址和一个二进制的IP地址,问两个地址是否是一个。直接每八位二进制数字转化十进制判断相等,简单模拟#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N

2016-04-13 19:10:22 275

原创 lightoj 1297 - Largest Box 三分查找

给定一个盒子,选取一个x值,使得盒子体积最大。体积公式为(a-2*x)(b-2*x)*x,那么这是一个一元三次方程。脑子里突然跳出来一个三分法..用了三分真尼玛过了我现在还在惊吓之中,不理解...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod

2016-04-13 16:52:08 270

原创 lightoj 1294 - Positive Negative Sign 简单数学

给定n,m代表n个数字,每m个一次变换符号..先减再加,n是2m的倍数。其实对于1-m来言m+1 - 2m可以一一对应,差值都为m...那么n里面共有n/2对#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3

2016-04-13 16:23:30 287

原创 lightoj 1214 - Large Division 大数对小数取余

给定一个200位的大数和一个int范围整数,问大数是否是小数的倍数。同之前的某到简单数学题#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N 100100using nam

2016-04-13 16:12:42 402

原创 lightoj 1179 - Josephus Problem 约瑟夫环

约瑟夫环问题,采取递推式求解....#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N 100100using namespace std;int a[50];int ma

2016-04-13 15:59:24 427

原创 lightoj 1148 - Mad Counting 简单数学

统计人数,询问了n个人每个人都回答了除了自己外支持同一球队的其他人数是多少,问最小有多少人。统计每个数字出现多少次,有a[i]+1个人回答的一样可以刚好组成一个团体...如果有剩余的话也是一个新的团体。#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1

2016-04-13 15:53:40 373

原创 lightoj 1116 - Ekka Dokka 简单数学

给定一个w,问能否分解为一个奇数乘一个偶数...如果不能就是impossible,否则输出偶数最小的答案。偶数最小的情况就是把所有的2提取出来的...否则另外一个数字一定是偶数...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#de

2016-04-13 15:41:12 396

原创 lightoj 1078 - Integer Divisibility 暴力数学

给定一个n和x,问最少多少个x组成的数字可以整除n...直接暴力,依次枚举x的数量...因为没想到其他做法只能尝试暴力了..没想到过了。大概是如果有解的话余数最多出现n个...所以n次内必然有解?n*t貌似不超时#includeusing namespace std;#define ll long long#define ull unsigned long long#def

2016-04-13 15:32:37 295

原创 lightoj 1020 - A Childhood Game 简单博弈

给定n个石子,每个人可以取1或2个,A先取取完的人失败,B先取取完的人成功...刚开始没看到AB先手不同最后结果不同死活不过样例...简单的巴什博奕...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3

2016-04-13 15:16:31 350

原创 lightoj 1008 - Fibsieve`s Fantabulous Birthday 乱搞

给定一个数字,输出其坐标,坐标从下往上从左往右递增...方法就如矩阵里面的。对于一个数字,如果是完全平方数就直接特判输出,非完全平方数的话可以判断出在第几层(半包围结构).第n层的元素有2n-1个。判断完层数可以得知起点终点的方式就知道如何输出。然后如果大于层数元素的一半,那么方式再次变化...其实方式就是层数到底是x坐标还是y坐标...#includeusing names

2016-04-13 14:40:56 431

原创 lightoj 1043 - Triangle Partitioning 公式

因为是相似三角形,长度比的平方等于面积比...#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000007#define inf 0x3f3f3f3f#define N 100100using namespace std;int main(){

2016-04-13 14:17:34 264

原创 lightoj 1363 - Binary Matrix (II) 贪心

给定一个01矩阵,每次可以交换相邻两列的一个点或者相邻两行的一个点(第一行和最后一行也算相邻,同理列也是),问能否使矩阵变为以下三种情况之一:1.每行每列的1都相等2.每行的1都相等.3.每列的1都相等,或者不可能,对于前三种情况输出最小步数。判断的话先统计出来所有的1,如果1的个数是行数的倍数就是行可以,是列数的倍数就是列可以,同时成立就是第一种..那么判断完成立后我们需要找出来最小步数

2016-04-13 14:01:28 402

原创 lightoj 1389 - Scarecrow 贪心

给定一个1*n的图,#代表坏的地,点代表庄稼,要放置稻草人防止乌鸦,一个稻草人可以保护本身和左右两端,问最少需要多少个稻草人。三个点为一组。遇到一个#可能的情况是前面的点数量是三的倍数,刚好不用管,余数为2,那么就必须要放置一个啦。余数为1..有可能的情况是.#.或者.##,其实不管什么情况都是要放置一个的,直接跳过下个点,不管是啥都行。我的代码最后要处理边界,其实在最后面加个#就可以不考

2016-04-13 12:24:16 337

原创 lightoj 1383 - Underwater Snipers 二分+贪心

y=k这条线代表河,敌人和狙击手分别在河岸两侧。有n个敌人在河上方,每个敌人的坐标给出,然后给出狙击手的射程d以及数量s,问狙击手最远距离河岸多远可以使得每个敌人至少可以被一个狙击手打种。如果抛开最远问狙击手数量的话,就和POJ某道贪心题一样了,区间覆盖那里面。假设我们知道距离的话我们可以通过判断放置狙击手数量来判定这个距离是否成立,那么距离就可以二分去判定,因为越远要的狙击手越多..

2016-04-13 12:06:35 398

原创 关于学习

本来一直想写的,万一有学弟看到可能会有帮助,我说的是情况应该只适用于很弱的学校,网上说的弱校大多数都是有金有银的,比起来实在强我们太多。昨晚学委找我,说很多老师对我很有意见,要找我谈话,昨天有个老师已经想找我,微软电面已经应下来了,也没去她的课找她谈话。最近还是我学院的学风督察月,大概是这段时间基本每周对每班都有个检查,强行点名。对此我就默默在实验室敲代码,只有下半年唯一一次区域赛机会(如

2016-04-13 09:20:24 533 1

原创 微软电面

今天接到ms的电话面试...第一次面试效果很不好,一上来自我介绍。然后就问了一些关于C++方面的东西,比如多态和继承是什么,编译器如何识别多态。然后说编程有用过这些没?直接回答基本不用,对方说你们大作业呢?写大作业的时候用到但是没有去复习,用过去就没关注了。然后问了操作系统的进程系列,接下来就是数据结构的队列堆栈,区别以及应用举例,什么时候用,而且这个时候用最好。举例回答了spfa

2016-04-12 15:41:39 829

原创 lightoj 1425 - The Monkey and the Oiled Bamboo 二分答案or乱搞

给定n个数字分别代表台阶高度,初始人在0,然后如果最大能跨越k步,如果跨越一次k步,那么k--,问最后能通过的最小k值是多少。一眼看去二分答案直接算...有一个简单办法,在找最大值的过程如果出现一个与最大值相同的数字,那么这个答案要+1...开始的时候以为初始在第一个台阶 跪烂了...二分解法:#includeusing namespace std;#define ll l

2016-04-12 13:43:28 350

原创 lightoj 1374 - Confusion in the Problemset 贪心

就是n个数字,问能否把这些数字放在合适的位置,每个位置的数字有两种含义:他前面有a[i]个数字或者他后面有a[i]个数字。对于大于n的数字来言都无效了...那么可以输出no了其实。其实对于一个位置来言,取第一种定义和第二种定义其实是没有区别的,因为是对称的...所以有啥取啥,不能取就是no。#includeusing namespace std;#define ll long

2016-04-12 13:16:50 348

原创 lightoj 1328 - A Gift from the Setter 贪心

给定k,c,n,a[0],自己构造出a数组,然后找出所有的abs(a[i]-a[j])(i这个题刚好whu的网络赛做过类似的。对于数组排序后不影响结果的...不过就是原先的负数取绝对值变为了全是正数。首先最小数字被减去了n-1次,那么第二个数字被减去了n-2次但是有第二个数字减第一个数字加了一次,所以第二个数字被减去了n-3次,第三个减去n-5....统计和就好了....#incl

2016-04-12 12:24:22 317

原创 lightoj 1301 - Monitoring Processes 贪心

给定n个任务,每个任务都有开始时间和结束时间,问要同时有多少台机器才能完成工作...开始以为直接排序用优先队列就好了没想到WA了,当时想到了一些BUG...万一结束时间晚的那个开始时间太早,每次找出来最小的结束来做任务会有BUG...然后考虑到任务看做线段来言,这个就是找出来一个点最多被覆盖多少次,那么这个题就成了某场BC的题目。有个姿势就是线段拆成两个端点,遇到起点+1,终点-1,找

2016-04-12 10:55:02 351

原创 lightoj 1219 - Mafia 贪心

给定一颗有n个节点的树,每个节点都有一个人数,问将每个节点都有1个人最低的消耗是多少(每人走一步消耗1)。输入比较扯,先输入节点u然后在输入这个点有多少人,再输入这个点与那些边相连了...单向边就好了,毕竟是颗树,找到根应该就能遍历所有的点。怎么移动人...从最底层考虑,叶子节点只能把多的人移动到父节点,不够也只能向父节点要。那么完成了所有的叶子节点后,对于倒数第二层的节点,他们的

2016-04-12 10:21:30 378

原创 lightoj 1198 - Karate Competition 贪心

给定双方的n个数字,如果a比b大两分,平1分,输了不得分,问a最多多少分。田忌赛马的标准问题(参考某年区域赛)...以前做过类似的,排序先。类似问题比如hdu 1528...不过这个是平了不得分..那么平了咋办,不平的话直接就是while(a[i]=1) j--,这样找到一个小的拿走,但是样例中就有反例了。考虑到平了就是用一个小的,那么我们从小的往大的考虑,每次我们找到一个当前最小

2016-04-11 19:33:03 484

原创 lightoj 1076 - Get the Containers 二分答案

参考lightoj 1048,一模一样的题目,只是不用输出每一堆都是什么了...原来的代码提交上去就可以AC,注意这个是n,k了不是n+1,k+1了..#includeusing namespace std;#define ll long long#define ull unsigned long long#define mod 1000000007#define inf 0x3f3

2016-04-11 19:00:54 394

原创 lightoj 1048 - Conquering Keokradong 二分答案

给定n+1个数字,将这些数字组合为k+1个数字(因为都是从0开始的)...问最大的数字最小的情况是啥,并且要求排在前面的数字尽可能大。二分答案,判定是否成立。判定的时候考虑应该怎么组合为k+1个数字都小于x...后来想想真tm傻逼,如果组合出的数字都小于等于x且数量比k+1少是肯定成立的...然后输出的时候..少一个数字当时真惆怅..单步了一下看出来了。#includeusing

2016-04-11 18:57:02 384

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除