OJ_URAL
wang2147483647
这个作者很懒,什么都没留下…
展开
-
URAL 2068 Game of Nuts(博弈)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2068 思路:x个石子,x=2*k+1。分三堆2*k+1=(2*k1+1)+(2*k2+1)+(2*k3+1)=2(k1+k2+k3+1)+1。k1+k2+k3+1=k,每分一次,k1+k2+k3减少1,所以石子最多分k次。求出总次数,判断奇偶即可。 #include #include #in原创 2016-08-22 19:36:22 · 749 阅读 · 0 评论 -
URAL 2069 Hard Rock(思路)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2069 思路:对于起点要么横着走,要么竖着走,则共有四种方式,直接竖横、横竖、先横后竖再横、现竖后横再竖,对于中间路径取最大值即可。 #include #include #include #include using namespace std; const int maxn=1e5+50;原创 2016-08-22 19:53:15 · 604 阅读 · 0 评论 -
URAL 2070 Interesting Numbers(数学)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2070 思路:质数一定满足题意(满足条件一,因子数为2为质数)。所以只需求出l到r中的合数且因子数为质数的数的个数。该数质因子只能为1(若大于一,则因子数为合数),所以枚举每个质数,若该质数的指数+1(因子数)为质数,则ans--。 #include #include #include #in原创 2016-08-22 20:17:01 · 970 阅读 · 0 评论 -
URAL 2062 Ambitious Experiment(树状数组)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2062 思路:对于x位置上的数,对其有贡献的数为位置为x的因数且属于修改区间[l,r]的数。所以对于查询操作ans=a[p]+sigma(sum(j)) (j为p的约数)。区间修改时仅需修改区间端点值:c[l]+=d,c[r+1]-=d(当数x在某个区间[l,r]时,每次求前x项的和时已包含该区原创 2016-08-23 21:43:10 · 679 阅读 · 0 评论 -
Ural 1040 Airline Company(构造)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1040 思路: 1.无向连通图满足从一点出发的边数大于1的边,其标号的最大公约数为1。 2.直接从任意点开始dfs,直接按dfs顺序给所有边标号即可(对于一点相连的两条边,dfs时必有一条边进入该点,一条边离开该点,即其标号相差1,而相邻两数其gcd为1,满足条件)。 #include #原创 2017-10-06 20:21:41 · 1849 阅读 · 0 评论 -
Ural 1003 Parity(并查集)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1003 思路: 一、 1.区间和可表示为两前缀和相减:sum[R]-sum[L-1]。若区间[L,R]和为奇数,则连边(L-1)-->R,权值为1,否则权值为0。则由a->b和b->c可推出a->c的奇偶性。 2.使用并查集维护信息,设w[i]为i到其根结点的距离。则判断时只需判断(w[L原创 2017-10-10 21:32:04 · 564 阅读 · 0 评论 -
Ural 1028 Stars(树状数组)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1028 思路: 首先按坐标排序(先按x,后按y),按x从小到大依次处理,则点i下方的点的个数即为y坐标不大于改点的个数,使用树状数组维护即可。 #include #include #include #include using namespace std; const int maxn=15原创 2017-10-10 22:22:06 · 396 阅读 · 0 评论