Codeforces Round #367 (Div. 2)
A题 Beru-taxi
随便搞搞。。
#include <cstdio> #include <cmath> using namespace std; int a,b,n; struct _ { int x,y,v; }p[]; double dis2(_ A) { return (a - A.x) * (a - A.x) + (b - A.y) * (b - A.y); } int main() { scanf("%d%d%d", &a, &b, &n); ; i < n; i++) scanf("%d%d%d", &p[i].x, &p[i].y, &p[i].v); double ans = 1.0 * 0x3f3f3f3f; ; i < n; i++) { double temp = (double) sqrt(dis2(p[i])) / p[i].v; ) ans = temp; } printf("%lf\n",ans); ; }
就是找有几个不大于它的数嘛。sort一下,upperbound就行。
#include <cstdio> #include <algorithm> using namespace std; + ]; int main() { int n,q,x; scanf("%d", &n); ; i < n; i++) scanf("%d", &a[i]); scanf("%d", &q); sort(a,a+n); ; i < q; i++) { scanf("%d", &x); int pos = upper_bound(a,a+n,x) - a; printf("%d\n",pos); } ; }
C题 Hard problem
dp,加一个维度来表示,是否翻转过!!!
其次,WA了一次是因为这个判断的时候,不等号是要带等号的。>= <= 而不是> < ;
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; typedef long long LL; + ; const LL INF = 1e17; int c[maxn]; LL dp[maxn][]; string s[maxn]; int main() { int n; cin>>n; ; i < n; i++) cin>>c[i]; ; i < n; i++) cin>>s[i]; //init ; i < n; i++) { dp[i][] = INF; dp[i][] = INF; } dp[][] = ; dp[][] = c[]; string s10,s11,s20,s21; ; i < n; i++) { s10 = s11 = s[i-]; reverse(s11.begin(),s11.end()); s20 = s21 = s[i]; reverse(s21.begin(),s21.end()); if(s10 <= s20) dp[i][] = min(dp[i][], dp[i-][]); if(s11 <= s20) dp[i][] = min(dp[i][], dp[i-][]); if(s10 <= s21) dp[i][] = min(dp[i][], dp[i-][] + (LL)c[i]); if(s11 <= s21) dp[i][] = min(dp[i][], dp[i-][] + (LL)c[i]); } LL ans = min(dp[n-][], dp[n-][]); cout<<(ans == INF ? - : ans)<<endl; ; }
据说是裸的字典树orz。
01字典树
#include <set> #include <queue> #include <cmath> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 const int INF = 0x3f3f3f3f; ; int n; ;//种类数目调节 struct node { node *next[trie_size]; int cnt; node() { ; i < trie_size; i++) next[i] = NULL; cnt = ; } }; node *p, *root = new node(); void trie_insert(int x) { p = root; ; i >= ; i--) { << i) ? : ; if(p->next[num] == NULL) p->next[num] = new node(); p = p->next[num]; p->cnt++; } } void trie_delete(int x) { p = root; ;i >= ; i--){ << i) ? : ; p = p -> next[num]; p->cnt--; } } int trie_query(int x) { ; p = root; ; i >= ; i--) { << i) ? : ; node *temp; temp = p->next[num]; ) { res += << i; p = temp; } else { p = p->next[!num]; } } return res; } int main() { trie_insert(); scanf("%d", &n); ; i < n; i++) { char ch; int x; getchar(); scanf("%c%d", &ch, &x); if(ch == '+') { trie_insert(x); } else if(ch == '-') { trie_delete(x); } else if(ch == '?') { int ans = trie_query(x); printf("%d\n", ans); } } ; }
Codeforces Round #367 (Div. 2)的更多相关文章
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)
Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...
- Codeforces Round #367 (Div. 2) C. Hard problem(DP)
Hard problem 题目链接: http://codeforces.com/contest/706/problem/C Description Vasiliy is fond of solvin ...
- Codeforces Round #367 (Div. 2) B. Interesting drink (模拟)
Interesting drink 题目链接: http://codeforces.com/contest/706/problem/B Description Vasiliy likes to res ...
- Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)
Beru-taxi 题目链接: http://codeforces.com/contest/706/problem/A Description Vasiliy lives at point (a, b ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset
题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 ...
- Codeforces Round #367 (Div. 2) C. Hard problem
题目链接:Codeforces Round #367 (Div. 2) C. Hard problem 题意: 给你一些字符串,字符串可以倒置,如果要倒置,就会消耗vi的能量,问你花最少的能量将这些字 ...
- Codeforces Round #367 (Div. 2) (A,B,C,D,E)
Codeforces Round 367 Div. 2 点击打开链接 A. Beru-taxi (1s, 256MB) 题目大意:在平面上 \(n\) 个点 \((x_i,y_i)\) 上有出租车,每 ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(01字典树求最大异或值)
http://codeforces.com/contest/706/problem/D 题意:有多种操作,操作1为在字典中加入x这个数,操作2为从字典中删除x这个数,操作3为从字典中找出一个数使得与给 ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset Trie
题目链接: http://codeforces.com/contest/706/problem/D D. Vasiliy's Multiset time limit per test:4 second ...
随机推荐
- Codeforces 2016 ACM Amman Collegiate Programming Contest A. Coins(动态规划/01背包变形)
传送门 Description Hasan and Bahosain want to buy a new video game, they want to share the expenses. Ha ...
- Java并发编程之阻塞队列
1.什么是阻塞队列? 队列是一种数据结构,它有两个基本操作:在队列尾部加入一个元素,从队列头部移除一个元素.阻塞队里与普通的队列的区别在于,普通队列不会对当前线程产生阻塞,在面对类似消费者-生产者模型 ...
- JavaScript 中一些概念理解 :clientX、clientY、offsetX、offsetY、screenX、screenY
clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包 ...
- Linux的inode的理解
文件名 -> inode -> device block 一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"( ...
- php操作mongodb
<?php set_time_limit(0); $mongo = new Mongo('192.168.33.50:27017'); //连接远程主机22011端口 $db = $mongo- ...
- 再次认识ASP.NET MVC
MVC, V,就是View.视图 M,只应该是ViewModel.视图模型 C,Controller.控制器 我们需要怎么看待并使用这三者. 从你敲入url,我们可以做为入口. 当你敲入url并按了回 ...
- PHP 连接 MySQL
PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ...
- Java重点识记
1.final修饰的类不能被继承,已经达到类层次中的最低层. 2.abstract修饰的类或成员方法,表明是抽象的,含有抽象方法的类必须说明是抽象类,必须派生出子类. 3.JAVA对逻辑与和逻辑或提供 ...
- android微信聊天记录导出到电脑【微信安卓版技巧】
微信,对它又爱又恨!爱的是微信能替代很多手机通话短信,恨的是有些较早前的手机不能友好支持,比如ytkah之前用的i8000,挺上手的,就是没办法装微信,当时工作需要必须用微信,只好忍痛割爱买了个and ...
- C/C++ 结构体内存对齐
内存对齐是指的是编译器在编译的时候总是会将结构体的元素的地址放在一些合适的位置使得CPU访问这些数据的效率变得更高.首先来看下面这个例子: struct A{ char a; char b; int ...