? D - 粉碎叛乱F - 其他起义

D - 粉碎叛乱

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status Practice HDU 1528

Description

Adam and Eve play a card game using a regular deck of 52 cards. The rules are simple. The players sit on opposite sides of a table, facing each other. Each player gets k cards from the deck and, after looking at them, places the cards face down in a row on the table. Adam’s cards are numbered from 1 to k from his left, and Eve’s cards are numbered 1 to k from her right (so Eve’s i:th card is opposite Adam’s i:th card). The cards are turned face up, and points are awarded as follows (for each i ∈ {1, . . . , k}):

If Adam’s i:th card beats Eve’s i:th card, then Adam gets one point.

If Eve’s i:th card beats Adam’s i:th card, then Eve gets one point.

A card with higher value always beats a card with a
lower value: a three beats a two, a four beats a three and a two, etc.
An ace beats every card except (possibly) another ace.

If the two i:th cards have the same value, then the
suit determines who wins: hearts beats all other suits, spades beats all
suits except hearts, diamond beats only clubs, and clubs does not beat
any suit.

For example, the ten of spades beats the ten of diamonds but not the Jack of clubs.

This ought to be a game of chance, but lately Eve is
winning most of the time, and the reason is that she has started to use
marked cards. In other words, she knows which cards Adam has on the
table before he turns them face up. Using this information she orders
her own cards so that she gets as many points as possible.

Your task is to, given Adam’s and Eve’s cards, determine how many points Eve will get if she plays optimally.

Input

There will be several test cases. The first line of input will contain a
single positive integer N giving the number of test cases. After that
line follow the test cases.

Each test case starts with a line with a single positive
integer k <= 26 which is the number of cards each player gets. The
next line describes the k cards Adam has placed on the table, left to
right. The next line describes the k cards Eve has (but she has not yet
placed them on the table). A card is described by two characters, the
first one being its value (2, 3, 4, 5, 6, 7, 8 ,9, T, J, Q, K, or A),
and the second one being its suit (C, D, S, or H). Cards are separated
by white spaces. So if Adam’s cards are the ten of clubs, the two of
hearts, and the Jack of diamonds, that could be described by the line

TC 2H JD

Output

For each test case output a single line with the number of points Eve
gets if she picks the optimal way to arrange her cards on the table.

Sample Input

3
1
JD
JH
2
5D TC
4C 5H
3
2H 3H 4H
2D 3D 4D

Sample Output

1 1 2

题解:坑,A竟然最大。。

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #define mem(x,y) memset(x,y,sizeof(x))
 7 using namespace std;
 8 typedef long long LL;
 9 const int INF=0x3f3f3f3f;
10 int a[1100],b[1100];
11 char s[5];
12 int getnum(){
13     int x=0;
14     if(s[0]==‘A‘)x=14;
15     else if(s[0]==‘T‘)x=10;
16     else if(s[0]==‘J‘)x=11;
17     else if(s[0]==‘Q‘)x=12;
18     else if(s[0]==‘K‘)x=13;
19     else if(s[0]>=‘2‘&&s[0]<=‘9‘)x=s[0]-‘0‘;
20     x=x*5;
21     if(s[1]==‘C‘)x+=1;
22     else if(s[1]==‘D‘)x+=2;
23     else if(s[1]==‘S‘)x+=3;
24     else if(s[1]==‘H‘)x+=4;
25      return x;
26 }
27 int main(){
28     int T,N;
29     scanf("%d",&T);
30     while(T--){
31         scanf("%d",&N);
32         for(int i=0;i<N;i++){
33             scanf("%s",s);
34             a[i]=getnum();
35         }
36         for(int i=0;i<N;i++){
37             scanf("%s",s);
38             b[i]=getnum();
39         }
40     //    for(int i=0;i<N;i++)printf("%d ",a[i]);puts("");
41     //    for(int i=0;i<N;i++)printf("%d ",b[i]);puts("");
42         sort(a,a+N);sort(b,b+N);
43         int ans=0;
44         for(int i=0,j=0;i<N&&j<N;){
45             if(b[i]>=a[j]){
46                 i++;j++;ans++;
47             }
48             else i++;
49         }
50         printf("%d\n",ans);
51     }
52     return 0;
53 }

F - 其他起义

Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

Submit Status Practice ZOJ 1610

Description

Painting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones.

Your task is counting the segments of different colors you can see at last.

Input

The first line of each data set contains exactly one integer n, 1 <= n <= 8000, equal to the number of colored segments.

Each of the following n lines consists of exactly 3 nonnegative integers separated by single spaces:

x1 x2 c

x1 and x2 indicate the left endpoint and right endpoint of the segment, c indicates the color of the segment.

All the numbers are in the range [0, 8000], and they are all integers.

Input may contain several data set, process to the end of file.

Output

Each line of the output should contain a color index that can be seen
from the top, following the count of the segments of this color, they
should be printed according to the color index.

If some color can‘t be seen, you shouldn‘t print it.

Print a blank line after every dataset.

Sample Input

5
0 4 4
0 3 1
3 4 2
0 2 2
0 2 3
4
0 1 1
3 4 1
1 3 2
1 3 1
6
0 1 0
1 2 1
2 3 1
1 2 0
2 3 0
1 2 1

Sample Output

1 1
2 1
3 1

1 1

0 2
1 1

题解:暴力;

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define mem(x,y) memset(x,y,sizeof(x))
using namespace std;
typedef long long LL;
const int INF=0x3f3f3f3f;
const int MAXN=1e6+10;
int tree[MAXN],pre[MAXN];
int main(){
    int N,x,y,z;
    while(~scanf("%d",&N)){
        mem(tree,-1);mem(pre,0);
        for(int i=0;i<N;i++){
            scanf("%d%d%d",&x,&y,&z);
            for(int j=x;j<y;j++)tree[j]=z;
        }
        for(int i=0;i<=8000;i++){
            if(tree[i]==-1)continue;
                pre[tree[i]]++;
            while(tree[i+1]==tree[i])i++;
        }
        for(int i=0;i<=8000;i++){
            if(!pre[i])continue;
            printf("%d %d\n",i,pre[i]);
        }
        puts("");
    }
    return 0;
}
时间: 2024-10-08 07:14:54

? D - 粉碎叛乱F - 其他起义的相关文章

过分过分进货价获国家

http://f.dangdang.com/group/24554/3491082/http://f.dangdang.com/group/24554/3491087/http://f.dangdang.com/group/24554/3491094/http://f.dangdang.com/group/24554/3491099/http://f.dangdang.com/group/24554/3491105/http://f.dangdang.com/group/24554/349111

我们找个地方看好戏

http://v.qq.com/page/f/y/4/m041433ssun.html http://v.qq.com/page/f/y/4/m041433ssun.html http://v.qq.com/page/f/y/4/m04143o3lhg.html http://v.qq.com/page/f/y/4/m04144675h3.html http://v.qq.com/page/f/y/4/m04144k1k1j.html http://v.qq.com/page/f/y/4/m04

bat中for /f 如何截取任意行

一.概述 for命令开关有很多,/L,/F,/R.这里仅对含有/F的for进行分析,这个可能是最常用的,也是最强的命令,主要用来处理文件和一些命令的输出结果. 1.命令格式:(1).FOR /F ["options"] %%i IN (file) DO command(2).FOR /F ["options"] %%i IN ("string") DO command--注意双引号(3).FOR /F ["options"]

2017 ACM-ICPC 西安网络赛 F.Trig Function Chebyshev多项式

自己太菜,数学基础太差,这场比赛做的很糟糕.本来想吐槽出题人怎么都出很数学的题,现在回过头来想还是因为自己太垃圾,竞赛就是要多了解点东西. 找$f(cos(x))=cos(nx)$中$x^m$的系数模998244353. wolfram alpha查了这个函数无果,得到了一堆sinx和cosx以及一个复指数的方程,其实应该推个几项再用数列查询查查看的,然后就会知道是Chebyshev polynomials 查WIKI直接就有通项公式了.然后就比较简单的了. 连方程都看不出来就别想着推导公式了.

tailf、tail -f、tail -F三者区别

tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -F     等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪 tailf        等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特

F(x)

F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description For a decimal number x with n digits (AnAn-1An-2 ... A2A1), we define its weight as F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1. No

求f(k)=k^k(k=1...n)的前n项和

求f(k)=k^k(k=1...n)的前n项和. 程序实现: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> long long My_Mul_Sum(int *n)//封装了一个求k^k的前n项和的函数 { int k = 1; long long sum = 0;//定义为long long是为了防止数据较大,容易溢出 for (k = 1; k <= n; k++) { int count = 0, mul = 1;//count

JSP -&gt; f:loadBundle用法

jsp中出现<f:loadBundle basename="messages_zh_CN" var="msgs" /> 还有src目录下有messages_zh_CN.properties等类似文件. 看了下面的教程你就知道这些是什么文件以及做什么用的. 一下部分来自http://javazheng.iteye.com/blog/766294 1,首先,为不同的语言分别准备一个.properties文件.比如,若要支持英文,中文,日文,则英文可以为Mes

NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))

Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m.但是大家来的时间不同,随机次序来机房,带电脑的人直接准备比赛而没带电脑的人需要向带电脑并还没和别人公用的人求助(当然会答应).但是,如果不存在带电脑并还没和别人公用的人,那他就要等了,等是很让人头疼的,这就不和谐了,当然假如没有这样的情况发生比赛是很和谐的. Input 输入多组数据,每组数据只有一行m(