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 ...
随机推荐
- locust参数化
前面用篇专门讲了requests实现接口的参数关联案例,这里直接转化成locust脚本就行了 # coding:utf-8 from locust import HttpLocust, TaskSet ...
- 常用mongo语句
只列出指定字段db.getCollection('PUBLICACCOUNTS').find({},{NickName:1,UserName:1,FID:1,_id:0})获取微信公众号列表db.ge ...
- MySQL的SQL MODE
SQL MODE:定义mysqld对约束等的响应行为: 查看当前模式: mysql> SHOW GLOBAL VARIABLES LIKE 'sql_mode'; 修改 ...
- seaborn(matplotlib)画图,linux系统中文乱码等问题解决
data = pd.read_json(json.dumps(issue_dpl)) # set pic size plt.figure(figsize=(13, 5)) sns.set_style( ...
- PHP日期与时间戳转换
设置时区 在php.ini中找到data.timezone去掉它前面的;号,然后设置data.timezone = "Asia/Shanghai"; 或者 ini_set('dat ...
- Mybatis一对多/多对多查询时只查出了一条数据
问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ...
- Ag-grid控件使用pine:left后,配合iview下拉框,会出现闪烁
Ag-grid控件使用pinned:left后,配合iview下拉框,会出现闪烁 引起原因:下拉图标的反转动画 目前解决方案: 添加一个全局样式: 禁用动画,其他地方也是如此, 影响控件有:gz-tr ...
- CSS3 画点好玩的东西
虽然项目赶工还是挺忙的,但闲了总要找点乐子嘛,毕竟秃顶和猝死两座大山夹逼着编程员们. 好吧,其实是无聊起来我自己都怕,于是就做了点小玩意. .heart { position: relative; t ...
- 快乐学习 Ionic Framework+PhoneGap 手册1-1{创建APP项目}
快乐学习 Ionic Framework+PhoneGap 手册1-1 * 前提必须安装 Node.js,安装PhoneGap,搭建Android开发环境,建议使用真机调试 {1.1}= 创建APP项 ...
- 20145210姚思羽 《网络对抗技术》 Web安全基础实践
20145210姚思羽 <网络对抗技术> Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御 ·SQL攻击的原理很简单,就是在用户名输入框里输入SQL语句,来欺骗数据库服 ...