2016ACM/ICPC亚洲区沈阳站
emm,a出3题,补了两题
A,B水题
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define read(a) scanf("%d",&a)
#define rread(a,b) scanf("%d%d",&a,&b)
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; int main()
{
int n;
read(n);
for(int i=;i<n;i++)
{
int a,b;
rread(a,b);
printf("%d\n",*max(a,b)+min(a,b));
}
return ;
}
/******************** ********************/
A
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define read(a) scanf("%d",&a)
#define rread(a,b) scanf("%d%d",&a,&b)
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; char s[N];
int main()
{
int n;
read(n);
for(int i=;i<n;i++)
{
int a,b;
scanf("%s",&s);
int len=strlen(s),ans=;
for(int i=;i<len;i++)
{
if(s[i]=='H')ans++;
else if(s[i]=='C')ans+=;
else ans+=;
}
printf("%d\n",ans);
}
return ;
}
/******************** ********************/
B
C:递推,首先想到矩阵快速幂,构造一个7维的矩阵,分别是ai-1,ai-2,i^4,i^3,i^2,i,1,再转移下去
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define read(a) scanf("%d",&a)
#define rread(a,b) scanf("%d%d",&a,&b)
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 2147493647
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; struct Node{
int len;
ll a[N][N];
};
Node mul(Node x,Node y)
{
Node ans;
memset(ans.a,,sizeof ans.a);
ans.len=x.len;
for(int i=;i<x.len;i++)
{
for(int j=;j<x.len;j++)
{
for(int k=;k<y.len;k++)
{
ans.a[i][k]=(ans.a[i][k]+x.a[i][j]*y.a[j][k]%mod)%mod;
}
}
}
return ans;
}
Node quick_mul(Node x,ll n)
{
Node ans;
memset(ans.a,,sizeof ans.a);
ans.len=x.len;
for(int i=;i<x.len;i++)ans.a[i][i]=;
while(n)
{
if(n&)ans=mul(ans,x);
x=mul(x,x);
n/=;
}
return ans;
}
int main()
{
int t;
read(t);
for(int i=;i<t;i++)
{
ll n,x,y;
scanf("%lld%lld%lld",&n,&x,&y);
if(n==)
{
printf("%lld\n",x%mod);
continue;
}
if(n==)
{
printf("%lld\n",y%mod);
continue;
}
Node A;
A.len=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=,A.a[][]=;
A=quick_mul(A,n-);
ll ans=A.a[][]*y%mod;
ans=(ans+A.a[][]*x%mod)%mod;
ans=(ans+A.a[][]****%mod)%mod;
ans=(ans+A.a[][]***%mod)%mod;
ans=(ans+A.a[][]**%mod)%mod;
ans=(ans+A.a[][]*%mod)%mod;
ans=(ans+A.a[][]%mod)%mod;
printf("%lld\n",ans);
}
return ;
}
/******************** ********************/
C
G是个二分+积分题,由于关系找错了,导致一直没过,二分水平面和竖直的夹角,用积分求体积和,不倾斜的体积比较
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define read(a) scanf("%d",&a)
#define rread(a,b) scanf("%d%d",&a,&b)
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 2147493647
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; double f(double x)
{
double y=acos(*tan(x)-);
double a1,a2;
a1=pi*cos(y)-y*cos(y)+sin(y)-(1.0/3.0)*sin(y)*sin(y)*sin(y);
y=pi;
a2=pi*cos(y)-y*cos(y)+sin(y)-(1.0/3.0)*sin(y)*sin(y)*sin(y);
return (1.0/tan(x))*(a1-a2);
}
double bs(double x)
{
double l=,r=pi/;
while(r-l>1e-)
{
double m=(l+r)/;
if(f(m)>x)r=m;
else l=m;
}
return l;
}
int main()
{
int t;
scanf("%d",&t);
for(int i=;i<t;i++)
{
double d;
scanf("%lf",&d);
if(d<1e-)
{
printf("%.5f\n",0.0);
continue;
}
double ans=pi*sqrt(+(-d)*(-d));
if(d<)
{
double ang=bs(d*pi);
double p=*tan(ang),ang1=acos(-p),v=ang1-(-p)*sqrt(-(-p)*(-p));
ans=v/sin(ang);
}
printf("%.5f\n",ans);
}
return ;
}
/******************** ********************/
G
E,求点为m个的团有多少个,因为没学过最大团的算法,所以不敢写,补题的时候发现居然dfs就能过= =,直接暴力dfs找到含m个点的团就退出
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define read(a) scanf("%d",&a)
#define rread(a,b) scanf("%d%d",&a,&b)
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 2147493647
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; bool ok[N][N];
int contain[N],ans;
int n,m,s;
vector<int>v[N];
void dfs(int u,int a[],int sz)
{
if(sz==s)
{
ans++;
return ;
}
for(int i=;i<v[u].size();i++)
{
bool f=;
for(int j=;j<sz;j++)
{
if(!ok[v[u][i]][a[j]])
{
f=;
break;
}
}
if(!f)
{
a[sz++]=v[u][i];
dfs(v[u][i],a,sz);
sz--;
}
}
}
int main()
{
int t;
read(t);
for(int i=;i<t;i++)
{
rread(n,m);read(s);
for(int i=;i<=n;i++)v[i].clear();
memset(ok,,sizeof ok);
while(m--)
{
int a,b;
rread(a,b);
if(a>b)swap(a,b);
v[a].pb(b);
ok[a][b]=ok[b][a]=;
}
ans=;
for(int i=;i<=n;i++)
{
// memset(contain,0,sizeof contain);
contain[]=i;
dfs(i,contain,);
}
printf("%d\n",ans);
}
return ;
}
/******************** ********************/
E
2016ACM/ICPC亚洲区沈阳站的更多相关文章
- HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)
Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)
Counting Cliques Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)
Thickest Burger Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- HDU 5949 Relative atomic mass 【模拟】 (2016ACM/ICPC亚洲区沈阳站)
Relative atomic mass Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- 2016ACM/ICPC亚洲区沈阳站-重现赛赛题
今天做的沈阳站重现赛,自己还是太水,只做出两道签到题,另外两道看懂题意了,但是也没能做出来. 1. Thickest Burger Time Limit: 2000/1000 MS (Java/Oth ...
- 2016ACM/ICPC亚洲区沈阳站 - A/B/C/E/G/H/I - (Undone)
链接:传送门 A - Thickest Burger - [签到水题] ACM ICPC is launching a thick burger. The thickness (or the heig ...
- 2016ACM/ICPC亚洲区沈阳站-重现赛
C.Recursive sequence 求ans(x),ans(1)=a,ans(2)=b,ans(n)=ans(n-2)*2+ans(n-1)+n^4 如果直接就去解...很难,毕竟不是那种可以直 ...
- HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 Farmer John likes to play mathematics games with ...
- HDU 5954 - Do not pour out - [积分+二分][2016ACM/ICPC亚洲区沈阳站 Problem G]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5954 Problem DescriptionYou have got a cylindrical cu ...
- 2016ACM/ICPC亚洲区沈阳站 Solution
A - Thickest Burger 水. #include <bits/stdc++.h> using namespace std; int t; int a, b; int main ...
随机推荐
- 数据库垂直拆分,水平拆分利器,cobar升级版mycat(转)
原文:数据库垂直拆分,水平拆分利器,cobar升级版mycat 1,关于Mycat Mycat情报 基于阿里的开源cobar ,可以用于生产系统中,目前在做如下的一些改进: 非阻塞IO的实现,相对于目 ...
- Django模型中OneToOneField和ForeignKey的区别
网上看到一篇讲解"Django模型中OneToOneField和ForeignKey区别" 的文章,浅显易懂; 可以把ForeignKey形象的类比为: ForeignKey是on ...
- 我的Android进阶之旅------>ListView中android:cacheColorHint,android:listSelector属性作用 .
( 本文转载于:http://blog.csdn.net/stonecao/article/details/6216449) 自定义listview的时候,当你不使用android:cacheColo ...
- 数据性能调校——查看最耗资源的各种SQL
从计划高速缓存中清除查询计划 DBCC FREEPROCCACHE 清除缓存中的过程 DBCC DROPCLEANBUFFERS清除内存中的数据 SELECT DB_ID('你的数据库名') tota ...
- springboot springmvc 支持 https
Spring Mvc和Spring Boot配置Tomcat支持Https 背景 最近在项目开发中需要让自己的后端Restful接口支持https,在参考了很多前辈们的博客后总结了一些. Spring ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考
摘要: 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse,DW)都介绍的很多,提出了很多优秀的解决方案,但是一般是把 SOA 和 DW 单独考虑,SOA 和 DW 有着共同 ...
- iOS Healthkit 使用探索分析 🌛
一 基本认知层面: HealthKit框架提供了一个结构,应用可以使用它来分享健康和健身数据.HealthKit管理从不同来源获得的数据,并根据用户的偏好设置,自动将不同来源的所有数据合并起来.应用还 ...
- HTML系列(2)基本的HTML标签(一)
本节介绍基本的HTML标签的使用实例. (1)h标签: <!DOCTYPE html> <html> <head> <title>示例2 ...
- 026_默认的MapReduce Driver(最小驱动问题)
1. 最小配置的MapReduce Driver 读取输入文件中的内容,输出到指定目录的输出文件中,此时文件中的内容为: Key---输入文件每行内容的起始位置. Value---输入文件每行的原始内 ...
- matlab 读取nc
在这里做个记录,这几个是matlab用来读取.nc格式数据的函数.只是函数,参数和变量为了便于理解,取括号中的名字. fid=netcdf.open('fname','nowriter');%打开 ...