HDU多校Round 3
Solved:4
rank:268
C. Dynamic Graph Matching 状压DP一下
#include <stdio.h>
#include <algorithm>
#include <algorithm>
#include <string.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + ; ll dp[ << ];
ll ans[];
int num[ << ]; void work()
{
int len = << ;
for(int i = ; i < len; i++)
{
int x = i;
while(x)
{
if(x & ) num[i]++;
x >>= ;
}
}
} int main()
{
work();
int T;
scanf("%d", &T);
while(T--)
{
int n, m;
scanf("%d%d", &n, &m);
memset(dp, , sizeof(dp));
memset(ans, , sizeof(ans));
dp[] = ; char s[];
int len = << n;
for(int i = ; i <= m; i++)
{
int a, b;
scanf("%s", s);
scanf("%d%d", &a, &b);
a--, b--; int tmp = ( << a) | ( << b);
for(int i = ; i < len; i++)
{
if(num[i] & ) continue;
if((i & tmp) == tmp)
{
if(s[] == '+')
{
dp[i] = (dp[i] + dp[i - tmp]) % mod;
ans[num[i] / ] += dp[i - tmp];
ans[num[i] / ] %= mod;
}
else
{
dp[i] -= dp[i - tmp];
dp[i] = (dp[i] + mod) % mod;
ans[num[i] / ] -= dp[i - tmp];
ans[num[i] / ] += mod;
ans[num[i] / ] %= mod;
}
}
}
for(int i = ; i <= n / ; i++)
{
if(i == ) printf("%d", ans[i]);
else printf(" %d", ans[i]);
}
puts("");
}
}
return ;
}
D. Euler Function
#include <stdio.h>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll; int getphi(int o)
{
int res = o;
int n = o;
for(int i = ; i * i <= n; i++)
{
if(n % i == )
{
res -= res / i;
while(n % i == ) n /= i;
}
}
if(n > ) res -= res / n;
return res;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n;
scanf("%d", &n);
if(n == ) printf("5\n");
else if(n == ) printf("7\n");
else printf("%d\n", n + );
}
return ;
}
L. Visual Cube
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string.h>
using namespace std; char tu[][]; int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c); int lie = a * + + b * ;
int hang = c * + + b * ; for(int i = ; i <= hang; i++)
for(int j = ; j <= lie; j++)
tu[i][j] = '.'; for(int i = ; i <= hang; i += )
for(int j = ; j <= lie; j += )
tu[i][j] = '+'; for(int i = ; i <= hang; i += )
for(int j = ; j <= lie; j += )
tu[i][j] = '-'; for(int i = ; i <= hang; i+= )
for(int j = ; j <= lie; j += )
tu[i][j] = '|'; int in = ;
int jn = b * + ;
for(int i = ; i <= b; i++)
{
in += ;
jn -= ;
for(int j = ; j <= a + ; j++)
{
tu[in][jn + (j - ) * ] = '.';
tu[in][jn + (j - ) * + ] = '/';
}
} int inj = lie + ;
int inh = ;
for(int i = ; i <= b; i++)
{
inj -= ;
inh += ;
for(int j = ; j <= c; j++)
{
tu[inh + (j - ) * ][inj] = '.';
tu[inh + (j - ) * + ][inj] = '/';
}
} int len = b * + ;
for(int i = ; i <= b * ; i++)
{
len--;
for(int j = ; j <= len; j++)
tu[i][j] = '.';
} len = b * + ;
for(int i = hang; i >= hang - b * ; i--)
{
len--;
for(int j = lie - len + ; j <= lie; j++)
tu[i][j] = '.';
} for(int i = ; i <= hang; i++)
{
for(int j = ; j <= lie; j++)
printf("%c", tu[i][j]);
puts("");
}
}
return ;
}
HDU多校Round 3的更多相关文章
- HDU多校Round 8
Solved:2 rank:141 D. Parentheses Matrix n,m有一个小于6的时候是一种构造方法 答案是n + (m - 2) / 2 (n > m) 都大于6的时候 可以 ...
- HDU多校Round 7
Solved:2 rank:293 J. Sequense 不知道自己写的什么东西 以后整数分块直接用 n / (n / i)表示一个块内相同n / i的最大i #include <bits/s ...
- HDU多校Round 6
Solved:2 rank:452 I. Werewolf 没有铁人 找铁狼 如果一个环中只有一条狼人边那个人就是铁狼 说铁狼是好人的人也是铁狼 #include <bits/stdc++.h& ...
- HDU多校Round 5
Solved:3 rank:71 E. Everything Has Changed #include <bits/stdc++.h> using namespace std; const ...
- HDU多校Round 4
Solved:3 rank:405................................. B. Harvest of Apples 知道了S(n,m) 可以o(1)的求S(n - 1, m ...
- HDU多校Round 1
Solved:5 rank:172 A.Maximum Multiple #include <stdio.h> #include <algorithm> #include &l ...
- hdu 5667 BestCoder Round #80 矩阵快速幂
Sequence Accepts: 59 Submissions: 650 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...
- hdu 5643 BestCoder Round #75
King's Game Accepts: 249 Submissions: 671 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6 ...
- hdu 5641 BestCoder Round #75
King's Phone Accepts: 310 Submissions: 2980 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
随机推荐
- STM32学习之路-感觉自己走到了一个天大的坑里了!
先前兴致勃勃的来弄16位并口驱动LCD.本以为就须要改下LCD IC的初始化即可了,没想到弄了这么多天最终发现自己走进了一个深坑了 T T 原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, ...
- linux redis tmp redis 安装
Redis https://redis.io/download yum install make gcc gcc-c++ openssl-devel zlib-devel -y; wget tar - ...
- POJ 2260:Error Correction
Error Correction Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6014 Accepted: 3886 ...
- [NOIP 2010] 引入入城
[题目链接] https://loj.ac/problem/2595 [算法] 显然 , 每个第一行的成市控制的一定是一段区间 那么 , 问题就转化为了经典的区间覆盖问题 , 贪心即可 , 时间复杂度 ...
- POJ 1659 Frogs' Neighborhood (贪心)
题意:中文题. 析:贪心策略,先让邻居多的选,选的时候也尽量选邻居多的. 代码如下: #pragma comment(linker, "/STACK:1024000000,102400000 ...
- ssh使用秘钥文件连接提示WARNING: UNPROTECTED PRIVATE KEY FILE!(转载)
转自:http://www.01happy.com/ssh-unprotected-private-key-file/ 在centos 6.4下使用ssh连接远程主机时,用的是另外一个密钥,需要用-i ...
- sql注入方法以及防范
sql注入方法: 1.数字注入 ; get请求 www.bobo.com?id=1 可以查出 ID等于1的一条数据. 如果有人在链接后面增加 www.bobo.com?id=1 or 1=1 / w ...
- SQL Server触发器创建、删除、修改、查看示例步骤
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- [51nod]1678 lyk与gcd(莫比乌斯反演)
题面 传送门 题解 和这题差不多 //minamoto #include<bits/stdc++.h> #define R register #define pb push_back #d ...
- ACM_括号匹配
括号匹配(栈) Time Limit: 2000/1000ms (Java/Others) Problem Description: 给一组包含[]()两种括号的序列,检查是否是合法的. 如:()[] ...