一共a了6题

A:找二分图,判断有没有冲突或者孤立的店

题解:直接dfs即可

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#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
#pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f; int color[N],n;
vector<int>v[N];
bool dfs(int u,int c)
{
color[u]=c;
for(int i=;i<v[u].size();i++)
{
int x=v[u][i];
if(color[x]==c||(color[x]==&&!dfs(x,-c)))
return ;
}
return ;
}
void solve()
{
for(int i=; i<=n; i++)
{
if(color[i]==&&!dfs(i,))
{
cout<<"NO"<<endl;
return ;
}
else if(color[i]==&&!dfs(i,))
{
cout<<"NO"<<endl;
return ;
}
}
for(int i=; i<=n; i++)
{
if(color[i]==&&!dfs(i,))
{
cout<<"NO"<<endl;
return ;
}
}
for(int i=;i<=n;i++)
if(color[i]==-)
{
cout<<"NO"<<endl;
return ;
}
cout<<"YES"<<endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
int m,x,y;
while(cin>>n>>m>>x>>y)
{
for(int i=;i<=n;i++)v[i].clear();
memset(color,-,sizeof color);
while(m--)
{
int a,b;
cin>>a>>b;
color[a]=color[b]=;
v[a].push_back(b);
v[b].push_back(a);
}
for(int i=;i<=x;i++)
{
int a;
cin>>a;
color[a]=;
}
for(int i=;i<=y;i++)
{
int a;
cin>>a;
color[a]=;
}
solve();
}
return ;
}
/*********************
5 4 1 2
1 3
1 4
3 5
4 5
2
1 3
*********************/

A

D:给你a,b,看能不能找到x,y使x+y==a,最小公约数(x,y)==b

题解:y=a-x,然后gcd(x,y)==gcd(a,b),看二元一次方程有没有解

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#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; map<ll,ll>m;
int main()
{
for(ll i=;i<=;i++)m[i*i]=i;
ll a,b;
while(~scanf("%lld%lld",&a,&b))
{
ll y=-a,z=__gcd(a,b)*b;
if(y*y<*z)puts("No Solution");
else
{
if(!m[y*y-*z]&&y*y-*z!=)puts("No Solution");
else
{
ll p1=-y+m[y*y-*z],p2=-y-m[y*y-*z];
if(p1%==&&p1/>&&p2%==&&p2/>)printf("%lld %lld\n",min(p1/,p2/),max(p1/,p2/));
else puts("No Solution");
}
}
}
return ;
}

F:给一个数a,找一堆不相同的数相加为a,使他们相乘最大

题解:直觉。。。2+3+。。+一直加到和大于a为止,然后把最后一位变成2+3+4+5+6+10这种形式,然后把10平摊到前面 的数2+4+5+6+7+8,然后前缀和二分,答案用前缀积+逆元求

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#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=; ll f[N],ans[N];
ll quick(ll a,ll b)
{
ll ans=;
while(b)
{
if(b&)ans=(ans*a)%mod;
a=(a*a)%mod;
b/=;
}
return ans;
}
int main()
{
ans[]=;
for(ll i=;i<=;i++)
{
f[i]=i*(i+)/-;
ans[i]=ans[i-]*i%mod;
}
int t;
scanf("%d",&t);
while(t--)
{
ll x;
scanf("%lld",&x);
if(x<=)printf("%lld\n",x);
else
{
ll p=lower_bound(f,f+,x)-f;
if(f[p]==x)printf("%lld\n",ans[p]);
else
{
if(p-x+f[p-]!=)printf("%lld\n",ans[p]*quick(p-x+f[p-],mod-)%mod);
else printf("%lld\n",ans[p+]*quick(p,mod-)%mod*quick(,mod-)%mod);
}
}
}
return ;
}

F

H:一个袋子里有n个红球,1个黑球,二个人轮流拿(拿到不放回),拿到黑球算赢,问先拿的人能不能赢

题解:找规律,emmm当n为奇数,可以看出概率为1/2,n为偶数时,把取的整个过程看成全排列那么就是(n+1)!,分成黑球在奇数位和在偶数位,在奇数位就是先手取的情况,

那么概率就是n+2/(2*(n+1)),保证大于0.5

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#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=; int main()
{
int k;
while(~scanf("%d",&k))
{
if(k&)puts("");
else puts("");
}
return ;
}

H

I水题

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#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=; int main()
{
int n,d;
while(~scanf("%d%d",&n,&d))
{
double ans=;
for(int i=;i<n;i++)
{
double ang;
scanf("%lf",&ang);
ans+=sin(ang/*pi)/*d*d;
}
printf("%.3f\n",ans);
}
return ;
}

I

J主要是题意难懂= =,给一堆数,把他化成32位的二进制,然后每8个算一个数(字符),求a的个数,模拟即可

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#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=; int main()
{
int n,d;
while(~scanf("%d",&n))
{
string a="";
for(int i=;i<n;i++)
{
ll x;
scanf("%lld",&x);
string p="";
for(int j=;j<=;j++)
{
if(x&)p+='';
else p+='';
x/=;
}
reverse(p.begin(),p.end());
a+=p;
}
ll ans=;
for(int i=;i<a.size();i+=)
{
ll p=;
for(int j=;j>=;j--)p+=(<<(-j))*(int)(a[j+i]-'');
if((char)p=='a')ans++;
}
printf("%d\n",ans);
}
return ;
}

J

The 2016 ACM-ICPC Asia Dalian Regional Contest的更多相关文章

  1. 2016 ACM/ICPC Asia Regional Dalian Online 1002/HDU 5869

    Different GCD Subarray Query Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  2. 2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Friends and Enemies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  4. HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Function Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  5. HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  6. HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  7. hdu 5868 2016 ACM/ICPC Asia Regional Dalian Online 1001 (burnside引理 polya定理)

    Different Circle Permutation Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K ...

  8. 2016 ACM/ICPC Asia Regional Shenyang Online 1003/HDU 5894 数学/组合数/逆元

    hannnnah_j’s Biological Test Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K ...

  9. 2016 ACM/ICPC Asia Regional Qingdao Online 1001/HDU5878 打表二分

    I Count Two Three Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

随机推荐

  1. docker daemon.json 配置

    下面是自己设置的 /etc/docker/daemon.json 文件中的配置案例 [root@master docker]# cat daemon.json { "registry-mir ...

  2. 使用Kotlin开发Android应用(III):扩展函数和默认值

    通过前面两篇文章,我们学习了Kotlin的基本知识,并知道如何配置工程,本文将接着介绍Java没有的而Kotlin实现了的有趣的特性.记住当你对Kotlin语言有任何疑问时,请参考官方指南.该指南组织 ...

  3. python2 和 pyhton3 输入语句写法

    Python的输入语句类型 1 python2的输入语句 在python2中有两种常见的输入语句,input()和raw_input(). (1)input()函数 可以接收不同类型的参数,而且返回的 ...

  4. 剑指offer 面试6题

    面试6题: 题目:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值. 解题代码: # -*- coding:utf-8 -*- # class ListNode: # def __init ...

  5. 内网IP&外网IP/NAT

    内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet.内网的计算机可向Internet上的其他 计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连 ...

  6. 如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件

    如何配置一个路径,能够既适合Linux平台,又适合Windows平台,可以从这个路径中读取文件? 目的:就是希望在项目的配置文件中配上一样的路径,不管协作者使用的是什么平台,都能够读到文件. 比如:L ...

  7. selenium之坑:点击后页面刷新重新获取刷新前的页面(StaleElementReferenceException:Message:Element not found in the cache...)

    循环点击一列链接,但只能点到第一个,第二个失败,这是为什么,因为第二个已经是新页面,当然找不到之前页面的元素,虽然元素没变,甚至是后退回来,页面都没有变,为什么是新页面,页面长的一样不代表是同一张页面 ...

  8. 分享几个基于 Yii2 的开源项目

    Yii2 Starter Kit(Yii2 开箱即用):https://github.com/trntv/yii2-starter-kit GetYii:https://github.com/iiYi ...

  9. 深入浅出Node.js(上)

    (一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...

  10. Python学习进程(14)异常处理

        本节介绍Python进行异常处理的方式,异常处理机制可以帮助我们调试python程序.     (1)异常的简介:     异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行 ...