The 2016 ACM-ICPC Asia Shenyang Regional Contest
A. Thickest Burger
大数 × 2 + 小数
#include <cstdio>
#include <algorithm>
using namespace std; int T;
int A,B;
int main()
{
scanf("%d",&T);
for(int t=1; t<=T; t++)
{
scanf("%d%d",&A,&B);
if(A<B) swap(A,B);
printf("%d\n",A*2+B);
}
return 0;
}
B. Relative atomic mass
给定一个分子式,只包含 H C O 三种,求相对分子质量。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=15; char s[maxn];
int T, ans = 0;
int main()
{
scanf("%d",&T);
for(int t=1; t<=T; t++)
{
ans=0;
scanf("%s",s);
int n=strlen(s);
for(int i=0; i<n; i++)
{
if(s[i]=='H') ans++;
if(s[i]=='C') ans+=12;
if(s[i]=='O') ans+=16;
}
printf("%d\n",ans);
}
return 0;
}
C. Recursive sequence
矩阵快速幂
#include <bits/stdc++.h>
using namespace std; typedef long long LL;
const LL MOD = 2147493647;
int a, b;
LL C[7][7]; void mut(LL A[][7], LL B[][7]) {
memset(C, 0, sizeof(C));
for(int i = 0; i < 7; ++i)
for(int j = 0; j < 7; ++j)
for(int k = 0; k < 7; ++k)
C[i][j] = ( C[i][j] + A[i][k] * B[k][j] ) % MOD;
memcpy(A, C, sizeof(C));
} LL qpow(int n) {
LL aa[7][7] = {{1,2,1,0,0,0,0},{1,0,0,0,0,0,0},{0,0,1,4,6,4,1},{0,0,0,1,3,3,1},{0,0,0,0,1,2,1},{0,0,0,0,0,1,1},{0,0,0,0,0,0,1}};
LL ans[7][7] = {{1,0,0,0,0,0,0},{0,1,0,0,0,0,0},{0,0,1,0,0,0,0},{0,0,0,1,0,0,0},{0,0,0,0,1,0,0},{0,0,0,0,0,1,0},{0,0,0,0,0,0,1}};
while(n) {
if(n&1) mut(ans, aa);
mut(aa,aa);
n>>=1;
}
LL res = ans[0][0] * b % MOD + ans[0][1] * a % MOD + ans[0][2] * 3 * 3 * 3 * 3 % MOD;
res = res + ans[0][3] * 3 * 3 * 3 % MOD + ans[0][4] * 3 * 3 % MOD + ans[0][5] * 3 % MOD;
res = ( res + ans[0][6] ) % MOD;
return res;
} int main() {
int T;
scanf("%d", &T);
while(T--) {
int n;
scanf("%d%d%d", &n, &a, &b);
if(n == 1) {
printf("%d\n",a);
continue;
}
LL ans = qpow(n-2);
printf("%lld\n", ans);
}
return 0;
}
D. Winning an Auction
博弈
E. Counting Cliques
爆搜。vector[i] 记录与 i 有边且编号大于 i 的点。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn = 100 + 10;
const int maxm = 1000 + 100; int n, m, k;
vector<int> v[maxn];
int from[maxm], to[maxm];
int G[maxn][maxn];
int d[maxn], node[maxn];
int tot, ans; void DFS(int x, int start)
{
if (tot == k) { ++ans; return; } int sz = v[x].size();
for (int i = start; i < sz; i++)
{
int flag = 0;
for (int j = 2; j <= tot; j++)
if (!G[ node[j] ][ v[x][i] ]) { flag = 1; break; } if (flag) continue; node[++tot] = v[x][i], DFS(x, i+1), --tot;
}
} int main()
{
int t;
scanf("%d", &t);
for (int ca = 1; ca <= t; ca++)
{
memset(d, 0, sizeof(d));
for (int i = 1; i <= n; i++)
{
for (int j = i+1; j <= n; j++) G[i][j] = G[j][i] = 0;
v[i].clear();
} scanf("%d%d%d", &n, &m, &k);
for (int i = 1; i <= m; i++)
{
scanf("%d%d", &from[i], &to[i]);
d[ from[i] ]++, d[ to[i] ]++;
} for (int i = 1; i <= m; i++)
if (d[ from[i] ] >= k-1 && d[ to[i] ] >= k-1)
{
if (from[i] < to[i]) v[ from[i] ].push_back(to[i]);
else v[ to[i] ].push_back(from[i]);
G[ from[i] ][ to[i] ] = G[ to[i] ][ from[i] ] = 1;
} ans = 0;
for (int i = 1; i <= n; i++)
{
tot = 1, node[1] = i;
DFS(i, 0);
} printf("%d\n", ans);
}
}
F. Similar Rotations
G. Do not pour out
H. Guessing the Dice Roll
I. The Elder
J. Query on a graph
K. New Signal Decomposition
L. A Random Turn Connection Game
M. Subsequence
The 2016 ACM-ICPC Asia Shenyang Regional Contest的更多相关文章
- 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 ...
- 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) ...
- 2016 ACM/ICPC Asia Regional Shenyang Online 1007/HDU 5898 数位dp
odd-even number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 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 ...
- 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 ( ...
- 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 ...
- 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 ...
- HDU 5889 Barricade 【BFS+最小割 网络流】(2016 ACM/ICPC Asia Regional Qingdao Online)
Barricade Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 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 ...
- 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 ...
随机推荐
- JS展示预览PDF。
刚好遇到需求,需要在手机端--展示一个电子收据,电子收据返回是PDF格式的,所以需要在前端上面去做PDF预览. 在学习过程中,了解到一种很简单,不需要任何插件的方法做PDF预览,但是这方法有局限性. ...
- SQLServer2008 开启远程连接
关闭防火墙 基本的设置可以参考下面的链接: http://wenku.baidu.com/link?url=qjZKZCCoa5T3EGd_rqSjl6Tuhb1wYjIHyXri630QxuAIKu ...
- JavaSE_4_集合
1.Map和ConcurrentHashMap的区别? Map和ConcurrentHashMap的区别,Map是接口,ConcurrentHashMap是实现类 2.hashMap内部具体如何实现的 ...
- 解决The Network Adapter could not establish the connection
解决1 主机与虚拟机ping不通 解决2 状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection 本次尝 ...
- wpf学习之(IValueConverter)
学习IValueConverter的使用 public class StatuToNullableBoolConverter : IValueConverter { /// <summary ...
- JavaWeb中五种转发方式(转)
今天本来是想找一下在jsp中实现转发的方式的,无意中看到了一篇文章,然后稍微综合了把服务器端的转发也包括在内. 1. RequestDispatcher.forward() 是在服务器端起作用,当 ...
- 奇怪的Unrooted Tests错误
错误如图: 条件如下: Eclipse里的Maven工程. 使用JUnit4(这个是否必须不知,反正我的工程用的4) 修改某个Test类里的方法名,或者增加一个Test方法. 现象: 在MyEclip ...
- 待解决问题:c++栈对象的析构、虚拟内存与内存管理的关系、内存管理的解决方案。
待解决问题:c++栈对象的析构.虚拟内存与内存管理的关系.内存管理的解决方案.
- wu2198:难得的波段抄底机会
很好的波段抄底机会 个人浅见看,目前染料股跌出的机会明显,养殖股波段机会明显,芯片.半导体.集成电路.北导.软件.国产操作系统等科技股短线机会不错.另外,大盘指数2856/2806区域的波段操作机会不 ...
- 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
//冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...