Codeforces 938 正方形方格最多0/1 足球赛dijkstra建图
A
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-8;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e7 + ;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 1e9 + ;
string ans;
int n;
string a;
int flag;
bool ok(char x)
{
if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u' || x == 'y')
{
return true;
}
return false;
}
int main()
{
cin >> n >> a;
flag = ;
for (int i = ; i < n; i++)
{
if (flag)
{
if (ok(a[i]))
{
continue;
}
else
{
ans += a[i];
flag = ;
}
}
else
{
if (ok(a[i]))
{
flag = ;
ans += a[i];
}
else
{
ans += a[i];
flag = ;
}
}
}
cout << ans << endl;
return ;
}
B
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-8;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e7 + ;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 1e9 + ;
int number[];
int anser = ;
int main()
{
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
int cur;
cin >> cur;
number[cur] = ;
}
for (int i = ; i <= ; i++)
{
if (number[i])
{
anser = max(anser, i - );
}
}
for (int i = ; i >= ; i--)
{
if (number[i])
{
anser = max(anser, - i);
}
}
cout << anser << endl;
return ;
}
C
N*N的方格里 每个方格可以填0或者1 要求每个M*M的小方格里面必须要有一个0
题目给你一个数 问你有没有一对 N,M使之成立
总共有N^2个方格 因为每个M*M的小方格里面需要有一个0 所以每行和每列最少都需要N/M个0 总共就是(N/M)*(N/M)个0
所以答案就是N^2-(N/M)^2个 利用立方差公式可以分解为 (N+(N/M)*(N-(N/M)=ANS 也就是分解质因数 复杂度T*SQRT X
每次遇到一个N M都要检测是否符合条件
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int main()
{
int n;
cin >> n;
while (n--)
{
int flag = ;
int x;
cin >> x;
if (x == )
{
cout << << " " << << endl;
continue;
}
for (int i = ; i <= ((int)sqrt(x) + ) && (!flag); i++)
{
if (x % i == )
{
int chu;
int beichu;
int a;
a = x / i;
chu = abs(i - a) / ;
if (chu == )
{
continue;
}
beichu = min(i, a) + chu;
int m;
m = beichu / chu;
if (beichu * beichu - (beichu / m) * (beichu / m) == x)
{
cout << beichu << " " << m << endl;
flag = ;
}
//break;
}
}
if (!flag)
{
cout << - << endl;
}
}
}
D
给你N个点 每个点可以都办足球比赛 票价为Ai 同时有M条路(不保证图联通)每条路有COST
问你在城市i的球迷想看球需要的最少的钱(往返加球票钱)
用floyd肯定不行 需要建一个超级源点 然后上堆优化的迪杰斯特拉跑一边 超级源点与原来每个点之间连的边的COST为其票价
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int n, m;
priority_queue<pair<ll, int> > que;
vector<pair<int, ll> > gra[];
ll sdis[];
int visit[];
int main()
{
for (int i = ; i <= ; i++)
{
sdis[i] = 1e18;
}
cin >> n >> m;
int from, to;
ll cost;
for (int i = ; i <= m; i++)
{
scanf("%d %d %lld", &from, &to, &cost);
cost *= 2LL;
gra[from].pb(make_pair(to, cost));
gra[to].pb(make_pair(from, cost));
}
for (int i = ; i <= n; i++)
{
scanf("%lld", &cost);
gra[].pb(make_pair(i, cost));
}
que.push({, });
while (!que.empty())
{
int now = que.top().second;
que.pop();
if (visit[now])
{
continue;
}
visit[now] = ;
int len = gra[now].size();
for (int i = ; i < len; i++)
{
to = gra[now][i].first;
ll value = gra[now][i].second;
if (!visit[to] && sdis[to] > sdis[now] + value)
{
sdis[to] = sdis[now] + value;
que.push({ -sdis[to], to});
}
}
}
for (int i = ; i <= n; i++)
{
cout << sdis[i] << " ";
}
cout << endl;
}
Codeforces 938 正方形方格最多0/1 足球赛dijkstra建图的更多相关文章
- 【转】Codeforces Round #406 (Div. 1) B. Legacy 线段树建图&&最短路
B. Legacy 题目连接: http://codeforces.com/contest/786/problem/B Description Rick and his co-workers have ...
- Educational Codeforces Round 25 E. Minimal Labels 拓扑排序+逆向建图
E. Minimal Labels time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Codeforces Round #406 (Div. 1) B. Legacy 线段树建图跑最短路
B. Legacy 题目连接: http://codeforces.com/contest/786/problem/B Description Rick and his co-workers have ...
- hdu4106 区间k覆盖问题(连续m个数,最多选k个数) 最小费用最大流 建图巧妙
/** 题目:hdu4106 区间k覆盖问题(连续m个数,最多选k个数) 最小费用最大流 建图巧妙 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4106 ...
- Codeforces 杂题集 2.0
记录一些没有写在其他随笔中的 Codeforces 杂题, 以 Problemset 题号排序 1326D2 - Prefix-Suffix Palindrome (Hard version) ...
- Codeforces Round #523 (Div. 2) E. Politics(最小费+思维建图)
https://codeforces.com/contest/1061/problem/E 题意 有n个点(<=500),标记第i个点的代价a[i],然后分别在这n个点建两棵树,对于每颗树的每个 ...
- CodeForces 786B Legacy(线段树优化建图+最短路)
[题目链接] http://codeforces.com/problemset/problem/786/B [题目大意] 给出一些星球,现在有一些传送枪,可以从一个星球到另一个星球, 从一个星球到另一 ...
- Codeforces Round #545 (Div. 2) E 强连通块 + dag上求最大路径 + 将状态看成点建图
https://codeforces.com/contest/1138/problem/E 题意 有n个城市(1e5),有m条单向边(1e5),每一周有d天(50),对于每个城市假如在某一天为1表示这 ...
- [Codeforces 1197E]Culture Code(线段树优化建图+DAG上最短路)
[Codeforces 1197E]Culture Code(线段树优化建图+DAG上最短路) 题面 有n个空心物品,每个物品有外部体积\(out_i\)和内部体积\(in_i\),如果\(in_i& ...
随机推荐
- SQL Server 2016升级迁移过程中性能问题诊断案例
日常运行的批量更新作业,平日是5分钟之内结束,今天出现超过30分钟没结束的情况,实际运行3个小时以上,应用程序超时报错. 数据库版本:SQL Server 2016企业版 问题SQL: declare ...
- leetcode-mid-dynamic programming-322. Coin Change - NO
mycode 我开始错误的思路:先用大钱除总钱数来保证 fewest number of coins,当最后剩下的amount小于最小币值的货币时,就说明return -1,但是这样想是有问题的!!! ...
- hibernate缓存机制与N+1问题
在项目中遇到的趣事 本文基于hibernate缓存机制与N+1问题展开思考, 先介绍何为N+1问题 再hibernate中用list()获得对象: /** * 此时会发出一条sql,将30个学生全部查 ...
- nginx创建默认虚拟主机
创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...
- ARTS-1
ARTS的初衷 Algorithm:主要是为了编程训练和学习.每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard).进行编程训练,如果不训练你看再多的算法 ...
- Android Jenkins自动打包纪录
关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录 (本篇文章需要对Jenkins有最基本的基础了解) 博主所在公司曾负责app测试过程中发 ...
- xmake新增对WDK驱动编译环境支持
xmake v2.2.1新版本现已支持WDK驱动编译环境,我们可以直接在系统原生cmd终端下,执行xmake进行驱动编译,甚至配合vscode, sublime text, IDEA等编辑器+xmak ...
- WCF书籍
<WCF 服务编程> <WCF 全面解析> <WCF全面解析(套装上下册)>
- (ROT-13解密)Flare-On4: Challenge1 login.html
说是FlareOn的逆向 倒不如说是crypto....... 题目不难 F12看源码: document.getElementById("prompt").onclick = f ...
- (4.25)Sqlserver中 登录用户只能看到自己拥有权限的库
Sqlserver中 登录用户只能看到自己拥有权限的库 转自:https://www.cnblogs.com/huangtailang/p/4209180.html 相关参考:https://www. ...