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& ...
随机推荐
- Python 写 ACM 题目的一些技巧
目录 输入输出 input() 输入 split() 用于输入 strip() 输入清理 print() 输入 sort 排序 输入输出 input() 输入 Python3 中 input() 函数 ...
- 用Vue来实现音乐播放器(四十):歌单详情页布局以及Vuex实现路由数据通讯
1.歌单详情页是推荐页面的二级路由页面 将推荐页面歌单的数据传到歌曲详情页面 利用vuex 1.首先在state下定义一个歌单对象 disc{} 2.在mutaions-types中 定义一个别名 ...
- The file is inaccessible to Server.
ArcGIS Unable to Start serviceserver安装后,启动服务失败,报错信息如下:Unable to Start service. Error (Server object ...
- python 接口测试时,后端报错no String-argument constructor/factory method
解决方法: 1.先将字典转化为序列化的数据类型 data = {"pageNo":0,"pageSize":10,"shopId":15,& ...
- 用JS实现移动的窗口
https://blog.csdn.net/iteye_21064/article/details/81496640 用JS实现移动的窗口 2007年09月06日 23:23:00 阅读数:3 很简单 ...
- Flink容错机制
Flink的Fault Tolerance,是在在Chandy Lamport Algorithm的基础上扩展实现了一套分布式Checkpointing机制,这个机制在论文"Lightwei ...
- springboot使用MockMvc测试controller
通常,在我们平时开发项目时,如果想要输入URL对Controller进行测试,在代码编辑之后,需要重启服务器,建立http client进行测试.这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不 ...
- Linux 命令 - man 查看命令的文档
man 命令是 Linux 中最常用的命令,碰到任何让你疑惑的命令,都可以 man 一下来查看详情.不只是 shell 命令,C 语言库函数和系统调用等内容也可以通过 man 命令查看. man 命令 ...
- springMVC+Spring+Mybatis+Redis
SPRINGMVC+MYBATIS+SPRING+REDIS 只作参考,以防忘记使用! mybatis的配置文件: <?xml version="1.0" encoding= ...
- spring(二) JDBC
一.配置 bean.xml , 链接数据库. c3p0数据库连接池 <?xml version="1.0" encoding="UTF-8"?> & ...