(叹气.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. 第一个C#语言

    第一个C#程序 .NET和C#的区别 1.  C#只是.NET的一部分,.NET不止包含C# 2.  C#是一种程序语言,.NET是一个平台.框架 IDE环境:vs 2012 VS2012的窗口结构 ...

  2. python中的函数嵌套

    一.函数嵌套 1.只要遇到了()就是函数的调用.如果没有就不是函数的调用 2.函数的执行顺序 遵循空间作用域,遇到调用才执行 def outer(): def inner(): print(" ...

  3. mysql之多表查询和pymysql模块

    一 多表查找方法 1 交叉连接:不使用任何的判断条件,生成笛卡尔积.第一个表的行数乘以第二个表的行数就等于笛卡尔积结果集的行数. mysql> select * from student,cla ...

  4. C#中string类型是值类型还是引用类型?(转)

    出处:https://www.cnblogs.com/dxxzst/p/8488567.html .Net框架程序设计(修订版)中有这样一段描述:String类型直接继承自Object,这使得它成为一 ...

  5. 关于微信小程序中组件和页面对全局样式的继承性

    1.组件只能继承全局样式中的font和color(backgroundcolor不继承) 2.页面可以继承全局样式中所有样式

  6. php接口 接受ios或android端图片; php接收NSData数据

    备注下, [自己无意中用的方法]接收时,设置两个参数,一个是图片名称,另一个是实际文件.然后用$_FILES处理就可以了. 如: $icon = $_POST['icon'];//这个是图片的名称,用 ...

  7. location位置操作

    使用location对象可以通过很多方式来改变浏览器的位置. location.assign('http://www.klkx.com') 传入一个URL地址 这样可以立即打开一个新的URL并在浏览器 ...

  8. 以太网MAC地址规范

    原文地址:http://blog.csdn.net/skyflying2012/article/details/40322563 之前一段时间在做网卡驱动的工作,现在产品量产,利用ifconfig e ...

  9. jquery的call()和apply()方法

    call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来 ...

  10. Sql Server用户名和登录名的关系总结

    以前经常被SQL Server中的用户名和登录名搞迷糊,因为用sa(登录名)就搞定一切东西了,当然这会存在一些安全隐患.网上的文章也貌似讲得很好,但还是不明白.今天决心把这个问题弄明白.mashall ...