Mango Weekly Training Round #3 解题报告
A. Codeforces 92A Chips
签到题。。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 10007 int a[]; int main()
{
int n,m,i;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=;i<=n;i++)
a[i] = i;
i = ;
while()
{
if(m>=a[i])
m-=a[i];
else
break;
i++;
if(i == n+)
i = ;
}
cout<<m<<endl;
}
return ;
}
B.Codeforces 217A Ice Skating
dfs或者并查集。
dfs:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 107 struct node
{
int x,y;
}a[N];
int vis[N];
int n; void joint(int k)
{
if(!vis[k])
{
vis[k] = ;
for(int i=;i<n;i++)
{
if(i != k && (a[k].x == a[i].x || a[k].y == a[i].y))
joint(i);
}
}
} int main()
{
int i;
while(scanf("%d",&n)!=EOF)
{
for(i=;i<n;i++)
scanf("%d%d",&a[i].x,&a[i].y);
memset(vis,,sizeof(vis));
int cnt = ;
for(i=;i<n;i++)
{
if(!vis[i])
{
cnt++;
joint(i);
}
}
cout<<cnt-<<endl;
}
return ;
}
C.UVA 12592 Slogan Learning of Princess
hash,用map做就可以了,也可以用字符串数组
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
using namespace std;
#define N 10007 map<string,string> mp; int main()
{
int n,i,q;
string s1,s2;
while(scanf("%d",&n)!=EOF)
{
getchar();
for(i=;i<n;i++)
{
getline(cin,s1);
cin.clear();
getline(cin,s2);
cin.clear();
mp[s1] = s2;
}
scanf("%d",&q);
getchar();
while(q--)
{
getline(cin,s1);
cout<<mp[s1]<<endl;
}
}
return ;
}
D.HDU 4027 Can you answer these queries?
线段树,单点更新,用一个标记表示区间内是否全为1,全为1则不用更新,以节省操作时间。注意:要用_int64类型,不要忘记每组数据后打一个空行
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define lll __int64
using namespace std;
#define N 100007 struct node
{
lll sum;
int mark;
}tree[*N]; void pushup(int rt)
{
tree[rt].sum = tree[*rt].sum + tree[*rt+].sum;
tree[rt].mark = tree[*rt].mark && tree[*rt+].mark;
} void build(int l,int r,int rt)
{
tree[rt].mark = ;
if(l == r)
{
scanf("%I64d",&tree[rt].sum);
if(tree[rt].sum == )
tree[rt].mark = ;
return;
}
int mid = (l+r)/;
build(l,mid,*rt);
build(mid+,r,*rt+);
pushup(rt);
} void update(int l,int r,int aa,int bb,int rt)
{
if(aa<=l && bb>=r)
{
if(tree[rt].mark)
return;
if(!tree[rt].mark && l == r)
{
tree[rt].sum = (lll)sqrt(tree[rt].sum);
if(tree[rt].sum <= )
tree[rt].mark = ;
return;
}
}
int mid = (l+r)/;
if(aa<=mid)
update(l,mid,aa,bb,*rt);
if(bb>mid)
update(mid+,r,aa,bb,*rt+);
pushup(rt);
} lll query(int l,int r,int aa,int bb,int rt)
{
if(aa>r || bb<l)
return ;
if(aa<=l && bb>=r)
return tree[rt].sum;
int mid = (l+r)/;
return query(l,mid,aa,bb,*rt)+query(mid+,r,aa,bb,*rt+);
} int main()
{
int n,i,q,op,aa,bb,cs = ;
while(scanf("%d",&n)!=EOF)
{
build(,n,);
scanf("%d",&q);
printf("Case #%d:\n",cs++);
while(q--)
{
scanf("%d%d%d",&op,&aa,&bb);
if(aa>bb)
swap(aa,bb);
if(op)
printf("%I64d\n",query(,n,aa,bb,));
else
update(,n,aa,bb,);
}
printf("\n");
}
return ;
}
E.UVA 11488 Hyper Prefix Sets
字典树,结构node维护两个值: count 和 deep ,结果即为节点的count * deep 的最大值。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 50007 struct node
{
int count,deep;
node *next[];
}*root; char ss[N];
int maxi; node *create()
{
node *p;
p = (node *)malloc(sizeof(node));
p->count = ;
p->deep = ;
for(int i=;i<;i++)
p->next[i] = NULL;
return p;
} void release(node *p)
{
for(int i=;i<;i++)
{
if(p->next[i] != NULL)
release(p->next[i]);
}
free(p);
} void insert(char *ss)
{
node *p = root;
int i = ,k;
while(ss[i])
{
k = ss[i++] - '';
if(p->next[k] == NULL)
p->next[k] = create();
p->next[k]->deep = p->deep + ;
p = p->next[k];
p->count++;
maxi = max(maxi,p->count*p->deep);
}
} int main()
{
int t,n,i;
scanf("%d",&t);
while(t--)
{
root = create();
scanf("%d",&n);
maxi = -;
for(i=;i<n;i++)
{
scanf("%s",ss);
insert(ss);
}
cout<<maxi<<endl;
release(root);
}
return ;
}
F.UVALive 6655 Two Points Revisited
构造法。
Mango Weekly Training Round #3 解题报告的更多相关文章
- Mango Weekly Training Round #6 解题报告
比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=41856#overview A.多种解法.可以dfs倒序染色,如mathlove ...
- Codeforces Round #300 解题报告
呜呜周日的时候手感一直很好 代码一般都是一遍过编译一遍过样例 做CF的时候前三题也都是一遍过Pretest没想着去检查... 期间姐姐提醒说有Announcement也自信不去看 呜呜然后就FST了 ...
- BestCoder Round #86 解题报告
A.Price List Sol 求和查询 Code #include<cstdio> #include<algorithm> #include<iostream> ...
- BestCoder Round #75 解题报告
King's Cake [思路] 递推 公式:f(n,m)=f(max(m,n-m),min(m,n-m))+1,n>m [代码] #include<cstdio> #include ...
- BestCoder Round #76 解题报告
DZY Loves Partition [思路] 贪心 [代码] #include <iostream> using namespace std; typedef long long ll ...
- Codeforces Global Round 1 解题报告
A 我的方法是: #include<bits/stdc++.h> using namespace std; #define int long long typedef long long ...
- 浙江省队选拔 ZJOI2015 (Round 1) 解题报告
最近莫名其妙地喜欢上了用这种格式写各省省选的全套题解= = 今年浙江省选的出题人是算法竞赛界传说级人物陈立杰,看样子他的出题风格很有特点……ABC三题难度是严格递减的,感觉如果在做第一题的时候被卡住的 ...
- BestCoder Round #40 解题报告
这场是第一场没有米的BC... 大概也是想震一震那些一听说没米了就不打BC的人吧 这次的题目质量比以往高了许多 (然而我并没有打这一场BC 但是今天下午到现在做的过程中真的学到了不少知识呢 A题略水. ...
- Codeforces Round #302 解题报告
感觉今天早上虽然没有睡醒但是效率还是挺高的... Pas和C++换着写... 544A. Set of Strings You are given a string q. A sequence o ...
随机推荐
- [ASP.NET MVC] 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
[ASP.NET MVC] 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC) 程序代码下载 程序代码下载:点此下载 前言 ASP.NET Identity是微软所贡献的 ...
- javascript中||和&&代替if
首先,我们来看一段代码: ; ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } else { ad ...
- touch触摸事件
事件对象 事件对象是用来记录一些事件发生时的相关信息的对象.事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁! W3C DOM把事件对象作 ...
- Android UI之下拉刷新上拉刷新实现
在实际开发中我们经常要用到上拉刷新和下拉刷新,因此今天我写了一个上拉和下拉刷新的demo,有一个自定义的下拉刷新控件 只需要在布局文件中直接引用就可以使用,非常方便,非常使用,以下是源代码: 自定义的 ...
- 分享到QQ空间、新浪微博、腾讯微博的代码
今天公司原来的分享代码,在IE下有问题.网上找了下网上的分享代码. 给网页加上分享代码,借助网友的力量推广网站,目前已经很流行了 以下是网页代码 QQ空间分享代码如下: <a href=&quo ...
- linux+jre+apache+mysql+tomcat调优
一.不再为Apache进程淤积.耗尽内存而困扰 0. /etc/my.cnf,在mysqld那一段加上如下一行: log-slow-queries=queries-slow.log 重启MySQL 酌 ...
- Java基础之子类父类属性覆盖
当java的子类和父类具有相同名字的属性时,到底java是怎么处理的. 先看代码: package com.joyfulmath.study.field; public class Person { ...
- 大家一起和snailren学java-(六)复用类
“失恋了,唉,还没开始就结束了……唉……继续看java” 今天又是周末,我们来看看java的复用机制是什么情况.大家知道,代码复用非常实用,这项特性是java的一个重要的部分.那java用什么来实现的 ...
- 万恶的hao123
Windows 10没办法直接在系统菜单栏上修改快捷图标的参数 在确认系统里面没有流氓软件之后,只能手工到文件夹下去修改了 C:\Users\你的用户名\AppData\Roaming\Microso ...
- IE无法正常打开QC的解决方案
方案一: 用兼容视图方式打开.(亲测IE10 可行) 方案二:(使用版本IE6-IE10) 1.安装过程中Jboss服务键入windows系统用户名密码域时总是提示用户名密码不正确! 解决方法:我的电 ...