一共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. MySQL中的SQL流程分析简述

    分析MySQL中这条语句的整个流程 update table_a set c1=xx where c2=xxx 朋友考我的一个问题在此处列出个人见解 1 客户端连接进来首先进行权限验证 2 验证通过后 ...

  2. python基础知识回顾[1]

    1.声明变量 # 声明一个变量name用来存储一个字符串'apollo' name = 'apollo' # 声明一个变量age用来存储一个数字20 age = 20 # 在控制台打印变量name中存 ...

  3. jQuery解决鼠标单双击问题

    html代码如下: <button>点击</button> JQ代码如下: <script> $(function () { // 编写相关jQuery代码 // ...

  4. wget: unable to resolve host address “http”

    [root@one ~]# wget www.baidu.com --2017-09-24 10:20:23-- http://www.baidu.com/ Resolving http... fai ...

  5. Python基础-序列化(json/pickle)

    我们把对象(变量)从内存中变成可存储的过程称之为序列化,比如XML,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等 ...

  6. Win10在右键菜单添加“在此处打开命令窗口”设置项

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere] @="在此处打开命令 ...

  7. Django序列化

    一.Django序列化    1.序列化应用场景     1.关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,由于httpresponse只能返回字符串或者是字节,而从数据库 ...

  8. java上机

    package wordcont; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayLi ...

  9. 插入排序 Insertion Sort

    插入排序算法的运作如下: 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 插入排序算法的实现我放在这里. 时间/空间复杂度: 最差时间复杂度 O(n^2) 最优时间 ...

  10. LR controller 参数化

    我在这里写的是在controller设置了vuser后的运行结果. 对于select Next Row和Update Value On的理解都是个人根据运行结果分析得出的理解. 而且主要写的unuqu ...