
思维
sega_handsome
这个作者很懒,什么都没留下…
展开
-
Trees CodeForces - 58C 暴力
题意:就是给你一堆树,让你每次操作能改变一棵树的高度, 高度从左到中间+1,从右边到中间-1, 问最少改变次数;分析:自己居然还看不出暴力,回来后才知道原来暴力可以做,但是自己写的太丑太复杂,在一些地方错了之后就不想改了,看了别人的代码,真好。。#include #include #include using namespace std;const in原创 2017-02-27 20:39:42 · 498 阅读 · 0 评论 -
Codeforces Round #312 (Div. 2)——C暴力技巧——Amr and Chemistry
参考:http://www.bubuko.com/infodetail-988967.html/*题意:把n个数变成相同所需要走的最小的步数易得到结论,两个奇数不同,一直×2不可能有重叠枚举每个数可能到得所有值,以及统计达到该值的时候已经走的步数最终答案就是1到up中num[i]最小的数*/#include #include #include #include usin转载 2017-10-25 22:59:14 · 237 阅读 · 0 评论 -
UVALive - 7263 Today Is a Rainy Day (BFS预处理)
参考:http://blog.youkuaiyun.com/qq_18661257/article/details/52896203 题目:https://vjudge.net/contest/194842#problem/C给定两个字符串s1和s2,将s2变为s1,变化操作有以下两种: 将一个位置上的数字变为另外一个数字 将一种数字变为另外一种数原创 2017-10-28 20:05:47 · 243 阅读 · 0 评论 -
Poj 3657 Haybale Guessing(二分+并查集)
参考:http://m.blog.youkuaiyun.com/wang2147483647/article/details/60142150【分析】数轴上有n个点,没个点上的值都不同。然后给你Q次询问和答案,输入l,r,x,表示在区间[l,r]最小值为x,然后问你最早在哪个地方出现矛盾。 区间染色问题,可以用并查集来做。先二分出现矛盾的地方p,然后将1~p的询问值按大到小排序,若对于最小值相同的区间中原创 2017-10-27 20:58:17 · 264 阅读 · 0 评论 -
Codeforces 876F High Cry【逆向思维】
参考:http://blog.youkuaiyun.com/mengxiang000000/article/details/78261348题目大意:让我们计算有多少个区间【L,R】,使得其或的和严格大于区间内所有的数。#include <bits/stdc++.h>using namespace std;#define N 200050#define LL long long #define up 3原创 2017-10-23 12:42:58 · 278 阅读 · 0 评论 -
Educational Codeforces Round 28 C 降低复杂度的方式
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=5050;const LL inf=1LL<<60;int a[maxn];int n;LL sum[maxn];#define S(l,r) (sum[r]-sum[l])int main(){ scanf("%d"转载 2017-09-06 22:28:35 · 311 阅读 · 0 评论 -
CodeForces - 675C Money Transfers 思维
**//题意: 小明在n个银行中有存款也有欠款,并且存款总和与欠款总和相等,问小明要经过几次周转才能使所有的银行中的钱数都为0,。 Hait:这几个是两两相邻的,并且第一个与最后一个是相邻的,每次周转只能在两个相邻的银行之间进行。 ** #include<iostream> #include<cstdio> #include<map> using na转载 2017-08-27 22:17:42 · 295 阅读 · 0 评论 -
Codeforces Round #357 (Div. 2) -- D. Gifts by the List(DFS)
参考:http://blog.youkuaiyun.com/aozil_yang/article/details/51866239 大体题意:一个家庭聚会,每个人都想送出礼物,送礼规则是 一个人 先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系,和每个人想给谁送!让你求出名单列表!注意 自己是自己的祖先。思路:想一想规则可以知道: 如果转载 2017-08-29 19:06:01 · 265 阅读 · 0 评论 -
个人赛2 简单思维
while (scanf("%d%d", &n, &m) != EOF) { int last = 0, x; scanf("%d", &last); for (int i = 1; i scanf("%d", &x); a[i] = x - last; last = x; } int cnt = 0; for原创 2017-08-28 21:27:56 · 329 阅读 · 0 评论 -
Pair of Numbers CodeForces - 359D 暴力
又是暴力,自己又不会,而且别人的更加巧妙了Codeforces Round #209 (Div. 2) D:http://codeforces.com/contest/359/problem/D题意:给以一个n个数的序列,然后问你最大的区间l,r,在这个区间里面,存在一个数是这个区间所有数的约数,如果这个区间有多个,统计有多少个以及每个区间的左端点。int转载 2017-02-27 20:59:58 · 600 阅读 · 0 评论 -
The Union of k-Segments CodeForces - 612D 什么技巧还有数据结构
题意:给定一堆线段,求最后重叠了k次或以上的线段和点。之前看了一个很好地有技巧的代码,但是现在找不到了。。大概就是左边是1,右边是-1,然后就可以了,自己写了个,但是RE了,数组不能再开更大了#include#include#include#include#include#include#include#includeusing namespace std;const原创 2017-02-27 22:46:22 · 347 阅读 · 0 评论 -
codeforce 763A
Codeforces 763A-Timofey and a tree题意:一棵树中n个节点被染上了c[i]颜色,让你在一棵树中随便选一个节点作为根节点,然后把整棵树抬起来,问你是否存在一个节点,使得以这个点为根节点的所有子树中的节点的颜色相同解题思路:若有这样的节点,边的两端端点颜色不一样的边(设为特殊边,这样的边总数为m)肯定是有和根节点连在一起的(如果没有和根节点相连的转载 2017-03-13 15:26:08 · 295 阅读 · 0 评论 -
hdu6103
多校训练赛6 有多种方法。。。 (1)前缀和+J 参考http://blog.youkuaiyun.com/rain722/article/details/77070926 这个地方的变为unsigned sort 还是有点难去想的, 而且我int n;int m;char s[mxn];unsigned short dp[mxn][mxn];bool ok(int mid){ fo转载 2017-08-11 20:28:30 · 398 阅读 · 0 评论 -
Codeforces-831C Jury Marks
http://codeforces.com/contest/831/problem/Cvisit http://blog.youkuaiyun.com/my_sunshine26/article/details/75095030 【题意】现在有一个人,有一个初始积分,接下来有k个人为他加分或减分,然后告诉你n(1<=n<=k)个积分减分过程中的积分,问根据这些信息,他的初始积分有多少可能【思路】首先我们对原创 2017-08-11 21:52:40 · 225 阅读 · 0 评论 -
Aizu - 1369
https://vjudge.net/contest/170559#problem/F 这题本来也说是水题的。。。但是自己没想出来。 而且刚看别人的代码还看不懂。int l[2*maxn],r[2*maxn];struct Node{ int pos; int id; bool friend operator<(Node a,Node b){ return原创 2017-08-11 21:57:14 · 221 阅读 · 0 评论 -
Codeforces 831D Office Keys 贪心or dp
https://vjudge.net/problem/CodeForces-831D 这个地方的贪心想不出来。。。LL a[maxn],b[maxn];void solve(){ sort(a+1,a+n+1); sort(b+1,b+k+1); LL ans=2*inf; for(int i=1;i<=k-n+1;++i){ LL sum=0;原创 2017-08-11 22:26:13 · 318 阅读 · 0 评论 -
Codeforces Round #422 (Div. 2) C
参考http://www.cnblogs.com/fu3638/p/7111450.html和http://blog.youkuaiyun.com/qq_34374664/article/details/74394895的分析,他们这个地方的对于区间的处理挺好。的 而且vector看起来真好用,,不怕爆空间typedef pair<int,int>pii;vector<pii>rv[mxn];vector原创 2017-08-12 14:26:40 · 186 阅读 · 0 评论 -
CodeForces - 776C 思维+普通的前缀和
https://vjudge.net/problem/CodeForces-776C参考,http://www.cnblogs.com/WHLdbk/p/6506534.html 然而我的代码却不知道怎么错了。。 错误代码。:map<LL,LL>mp;LL sum[mxn];LL k_t[1000];int main(){ int n,k; //freopen("in.tx原创 2017-08-12 15:06:52 · 567 阅读 · 0 评论 -
Codeforces 835E E. The penguin's game 交互题 多猪试毒 (写的挺好的)
转自:http://blog.youkuaiyun.com/u013944294/article/details/76552994给定n(2<=n<=1000)个数,有n-2个数是x,2个数是y,x与y非0且x与y不相等。每次向测评机询问一些位置,测评机返回这些位置的数的异或值。最多可以询问19次,要求输出两个y的位置。解法:题目给出的19次询问次数上限是严格的。即能构造数据使得不得不询问19次才能出答案。先讨转载 2017-08-24 17:17:45 · 815 阅读 · 0 评论 -
Letters Gym - 101164F
https://vjudge.net/contest/170300#problem/Fcode’s forceint main(){ //freopen("F.in","r",stdin); LL now=26,len=1; LL n;sf("%lld",&n);++n; while(n>now*len){ n-=now*len,len++;now*=原创 2017-08-11 21:18:25 · 252 阅读 · 0 评论 -
一道关于进制的思维题
直接 转载了http://www.matrix67.com/blog/archives/4361大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进转载 2017-08-23 22:23:48 · 277 阅读 · 0 评论