(叹气.jpg)

B.Beautiful Now

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6351

题意:给一串长度为m的数字,k次任意交换其中两个,问可得到的最小数和最大数。

分析:当k>=m-1时直接可以将这m个数排序,直接得到最大或最小。当k<m-1时,枚举每个数所在位置的全排列,与原数位排列比较求出交换次数,在这个过程中求min和max即可。

此外,这个题可以直接暴搜。

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
char n[maxn];
int k,len,minnum,maxnum;
int c[maxn],p[maxn],q[maxn],p1[maxn];
void init(){
memset(c,,sizeof(c));memset(p,,sizeof(p));memset(p1,,sizeof(p1));
len=strlen(n);
for (int i=;i<len;i++){
int xx=n[i]-'';
c[i]=xx;p[xx]++;p1[xx]++;
}
}
void check(){
if (c[p[]]==) return ;
for (int i=;i<len;i++) q[i]=p[i]; //q数组内保存全排列后的位置
int sum=,k1=;
for (int i=;i<len;i++){
sum=sum*+c[p[i]];
if (q[i]!=i){
for (int j=i+;j<len;j++){
if (q[j]==i){
swap(q[i],q[j]);
k1++;
if (k1>k) return ;
break;
}
}
}
}
if (k1>k) return ;
minnum=min(minnum,sum);
maxnum=max(maxnum,sum);
}
int main(){
ios::sync_with_stdio(false);
cin.tie();cout.tie();
int t;
cin >> t;
while (t--){
cin >> n >> k;
init();
if (k>=len-){
for (int i=;i<=;i++){
if (p[i]!=){
cout << i;
p[i]--;
break;
}
}
for (int i=;i<=;i++){
while (p[i]!=){
cout << i;
p[i]--;
}
}
cout << " ";
for (int i=;i>=;i--){
while (p1[i]!=){
cout << i;
p1[i]--;
}
}
cout << endl;
continue;
}
memset(p,,sizeof(p));
for (int i=;i<len;i++) p[i]=i;
minnum=2e9,maxnum=-;
do{
check();
}while(next_permutation(p,p+len));
cout << minnum << " " << maxnum << endl;
}
return ;
}

hdoj6351

E.Everything Has Changed

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6354

题意:求大圆被若干个两两不想交圆切割后外周长。

分析:rt。

 #include<bits/stdc++.h>
using namespace std;
const double eps=1e-;
const double pi=acos(-1.0);
double R;
double _pow(double x){
return x*x;
}
double check(double x,double y,double r){
double d=sqrt(_pow(x)+_pow(y));
if (d-(r+R)>=eps) return 0.0; //相离
if (fabs(d+r-R)<=eps) return *pi*r; //内切
if (d+r-R<-eps) return 0.0; //内含
double t1=acos((_pow(r)+_pow(d)-_pow(R))/(2.0*r*d))*; //相交
double t2=acos((_pow(R)+_pow(d)-_pow(r))/(2.0*R*d))*;
double s1=t1*r;
double s2=t2*R;
return s1-s2;
}
int main(){
ios::sync_with_stdio(false);
cin.tie();cout.tie();
int t,m;
double x,y,r;
cin >> t;
while (t--){
cin >> m >> R;
double ans=pi*2.0*R;
while (m--){
cin >> x >> y >> r;
ans=ans+check(x,y,r);
}
printf("%.10f\n",ans);
}
return ;
}

hdoj6354

G.Glad You Came

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6356

题意:随机数生成,m次操作区间内修改最小值,问最后n个数的异或和。

分析:线段树维护区间最小值即可,区间修改到点,点查询。

 #include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+;
typedef unsigned int ui;
typedef long long ll;
struct point{
int l,r;
int num;
}tree[maxn*];
ui x,y,z;
int n,m,X,Y,Z;
ui RNG61(){
ui w;
x=x^(x<<);
x=x^(x>>);
x=x^(x<<);
x=x^(x>>);
w=x^(y^z);x=y;y=z;z=w;
return z;
}
void Build(int root,int l,int r){
tree[root].num=;
tree[root].l=l;tree[root].r=r;
if (tree[root].l==tree[root].r){
return ;
}
int mid=(tree[root].l+tree[root].r)/;
Build(root<<,l,mid);
Build(root<<|,mid+,r);
}
void Update(int root,int l,int r,int v){
if (tree[root].num>v){
return ;
}
if (tree[root].l==tree[root].r){
tree[root].num=v;
return ;
}
int mid=(tree[root].l+tree[root].r)/;
if (l<=mid) Update(root<<,l,r,v);
if (mid<r) Update(root<<|,l,r,v);
tree[root].num=min(tree[root<<].num,tree[root<<|].num);
}
int Query(int root,int xx){
if (tree[root].l==tree[root].r){
return tree[root].num;
}
int mid=(tree[root].l+tree[root].r)/;
if (xx<=mid) return Query(root<<,xx);
else return Query(root<<|,xx);
}
int main(){
ios::sync_with_stdio(false);
cin.tie();cout.tie();
int t;
cin >> t;
while (t--){
cin >> n >> m >> X >> Y >> Z;
x=X;y=Y;z=Z;
Build(,,n);
for (int i=;i<=m;i++){
int l=RNG61()%n+,r=RNG61()%n+,v=RNG61()%(<<);
if (l>r) swap(l,r);
Update(,l,r,v);
}
ll ans=;
for (int i=;i<=n;i++){
int xx=Query(,i);
//cout << xx << endl;
ans^=1ll*i*xx;
}
cout << ans << endl;
}
return ;
}

hdoj6356

2018 Multi-University Training Contest 5的更多相关文章

  1. 2018 Nowcoder Multi-University Training Contest 2

    目录 Contest Info Solutions A. run D. monrey G. transform H. travel I. car J. farm Contest Info Practi ...

  2. 2018 Nowcoder Multi-University Training Contest 1

    Practice Link J. Different Integers 题意: 给出\(n\)个数,每次询问\((l_i, r_i)\),表示\(a_1, \cdots, a_i, a_j, \cdo ...

  3. 2018 Nowcoder Multi-University Training Contest 5

    Practice Link A. gpa 题意: 有\(n\)门课程,每门课程的学分为\(s_i\),绩点为\(c_i\),要求最多删除\(k\)门课程,使得gpa最高. gpa计算方式如下: \[ ...

  4. 2018 Nowcoder Multi-University Training Contest 10

    Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...

  5. HDU 2018 Multi-University Training Contest 3 Problem A. Ascending Rating 【单调队列优化】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6319 Problem A. Ascending Rating Time Limit: 10000/500 ...

  6. 2018 Multi-University Training Contest 2

    题目链接:2018 Multi-University Training Contest 2 6318 Swaps and Inversions 题意:sum=x*逆序个数+交换次数*y,使sum最小 ...

  7. 2018 Multi-University Training Contest 1

    比赛链接:2018 Multi-University Training Contest 1 6301 Distinct Values 题意:输出一个长度为n的序列,要求满足m个区间的数都不相同,并且字 ...

  8. hdu 6301 Distinct Values (2018 Multi-University Training Contest 1 1004)

    Distinct Values Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  9. 2018 Multi-University Training Contest 4 Problem J. Let Sudoku Rotate 【DFS+剪枝+矩阵旋转】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6341 Problem J. Let Sudoku Rotate Time Limit: 2000/100 ...

  10. 2018 Multi-University Training Contest 4 Problem K. Expression in Memories 【模拟】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6342 Problem K. Expression in Memories Time Limit: 200 ...

随机推荐

  1. 7月底的list

    多校的新姿势: 超大数比较 置换群 树归 莫比乌斯反演 7月26日做了的list: a.补了多校的两道题. b.学了如何比较特别多特别大的数 c.看了波循环群   d.看了点kmp 7月27想做的li ...

  2. mysql数据库进阶篇

    一.连表操作 1)为何需要连表操作 .把所有数据都存放于一张表的弊端 .表的组织结构复杂不清晰 .浪费空间 .扩展性极差 2)表设计,分析表与表之间的关系 寻找表与表之间的关系的套路 举例:emp表 ...

  3. python约束 异常 MD5 日志处理

    一.约束 1.用父类执行约束 子类继承父类,用重写方法,对子类的方法进行约束. class Foo: def login(self): # 对子类进行约束,该方法需要重写 # 没有执行的错误 rais ...

  4. 747. Largest Number At Least Twice of Others

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  5. 2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)

    传送门 有点难调啊.其实是我自己sb了 不过交上去1A1A1A还是平衡了一下心态. 所以这道题怎么做呢? 我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/ ...

  6. jQuery插件开发全解析[转]

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  7. Linux下通过管道杀死所有与tomcat相关的进程

    先将正确的命令放上来: ps -ef | grep ps -ef将系统中运行的进程展示出来 选择带有tomcat的进程后同时去除自身带有grep的进程,毕竟本身运行的这条命令是与tomcat相关的 a ...

  8. Arria10收发器校正

    收发器的模拟和数字部分都需要校正来补偿过程,电压和温度(PTV)带来的变化. Arria10使用PreSICE来执行校正过程.   校正主要包括上电校正和用户校正两方面: 上电校正在器件上电时自动执行 ...

  9. [转]深入理解mysqldump原理

    本文转至:http://blog.csdn.net/cug_jiang126com/article/details/49824471 在mysqldump过程中,之前其实一直不是很理解为什么加了--s ...

  10. silverlight 定时器 System.Windows.Threading.DispatcherTimer

    声明 System.Windows.Threading.DispatcherTimer _MessageControler; //刷新 _MessageControler = new System.W ...