1. 程式人生 > >CSU 1684: Disastrous Downtime 1685: Entertainment Box 1692: Vector Field 1697: Surface Area of Cubes

CSU 1684: Disastrous Downtime 1685: Entertainment Box 1692: Vector Field 1697: Surface Area of Cubes

#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<vector>
#include<queue>
#include<set>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;

#define T 100000 + 50
struct node { ll v; bool operator<(const node& b)const{ return v<b.v; } }a[T]; struct line { ll val; line():val(0){} line(ll _2):val(_2){} bool operator<(const line& b)const{ return val>b.val; } }; ll v[T]; bool cmp(const ll& a,const ll& b){return a>b;} int
main()
{ int n,m,i,j; while(~scanf("%d%d",&n,&m)) { ll c = 0; ll sum = 0; for(i=0;i<n;++i){ scanf("%lld",&a[i].v); } sort(a,a+n); fill(v,v+T,0); multiset< ll,greater<int> > Q; multiset< ll,greater<int> >::iterator it; ll k; Q.insert(a[0].v+1000
); ll cnt; for(i=1;i<n;++i){ it = Q.begin(); k = *it; it = Q.lower_bound(a[i].v); if(it==Q.end()){ Q.insert(a[i].v+1000); } else if(it!=Q.end()){ Q.erase(it); Q.insert(a[i].v+1000); } } cnt = Q.size(); Q.clear(); if(cnt%m>0)cnt = cnt/m+1; else cnt = cnt/m; printf("%lld\n",cnt); } return 0; }
#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<vector>
#include<queue>
#include<set>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;

#define T 100000 + 50

struct node
{
	ll L,R;
	bool operator<(const node& b)const{
		return R<b.R;
	}
}a[T];

struct line
{
	ll val;
	line():val(0){}
	line(ll _2):val(_2){}
	bool operator<(const line& b)const{
		return val>b.val;
	}
};

ll v[T];

bool cmp(const ll& a,const ll& b){return a>b;}

int main()
{
#ifdef zsc
	freopen("input.txt","r",stdin);
#endif
	int n,m,i,j;
	while(~scanf("%d%d",&n,&m))
	{
		ll c = 0;
		ll sum = 0;
		for(i=0;i<n;++i){
			scanf("%lld%lld",&a[i].L,&a[i].R);
		}
		if(m>=n){
			printf("%d\n",n);
			continue;
		}
		sort(a,a+n);
		fill(v,v+T,0);
		multiset< ll,greater<int> > Q;
		multiset< ll,greater<int> >::iterator it;
		ll k;
		Q.insert(a[0].R);
		c = 1;
		int cnt = 1;
		for(i=1;i<n;++i){
 			it = Q.begin();
			k = *it;
			it = Q.lower_bound(a[i].L);
			if(it==Q.end()&&cnt<m){
				c ++;cnt++;
				Q.insert(a[i].R);
			}
			else if(it!=Q.end()&&cnt<=m){
				c++;
				Q.erase(it);
				Q.insert(a[i].R);
			}
		}
		Q.clear();
		printf("%lld\n",c);
	}
	return 0;
}
#include<map>
#include<set>
#include<cmath>
#include<ctime>
#include<stack>
#include<queue>
#include<cstdio>
#include<cctype>
#include<bitset>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#define fuck(x) cout<<"["<<x<<"]"
#define FIN freopen("input.txt","r",stdin)
#define FOUT freopen("output.txt","w+",stdout)
//#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef long long LL;
 
const int MX = 3e3 + 5;
struct Point {
    int x, y, d; //下左上右
} P[MX];
struct Data {
    int val, id;
    Data() {}
    Data(int _id, int _val) {
        val = _val; id = _id;
    }
    bool operator<(const Data &P) const {
        return val < P.val;
    }
};
 
set<Data>X[MX], Y[MX];
int tmpX[MX], tmpY[MX];
 
int solve(int u) {
    int begin = u;
    set<Data>::iterator it;
    int ret = 0;
    while(true) {
        ret++;
        X[P[u].x].erase(Data(u, P[u].y));
        Y[P[u].y].erase(Data(u, P[u].x));
        if(P[u].d == 0) {
            it = X[P[u].x].lower_bound(Data(0, P[u].y));
            if(it == X[P[u].x].begin()) return ret;
            it--;
        }
        if(P[u].d == 1) {
            it = Y[P[u].y].lower_bound(Data(0, P[u].x));
            if(it == Y[P[u].y].begin()) return ret;
            it--;
        }
        if(P[u].d == 2) {
            it = X[P[u].x].upper_bound(Data(0, P[u].y));
            if(it == X[P[u].x].end()) return ret;
        }
        if(P[u].d == 3) {
            it = Y[P[u].y].upper_bound(Data(0, P[u].x));
            if(it == Y[P[u].y].end()) return ret;
        }
        //if(begin==5&&P[u].x==2&&P[u].y==1) fuck(P[u].d);
        u = it->id;
    }
    return ret;
}
 
int main() {
    int n; //FIN;
    while(~scanf("%d", &n)) {
        for(int i = 1; i <= n; i++) {
            char w[10];
            scanf("%d%d%s", &P[i].x, &P[i].y, w);
            tmpX[i] = P[i].x; tmpY[i] = P[i].y;
            if(w[0] == 'v') P[i].d = 2;
            if(w[0] == '<') P[i].d = 1;
            if(w[0] == '^') P[i].d = 0;
            if(w[0] == '>') P[i].d = 3;
        }
        int sz1, sz2;
        sort(tmpX + 1, tmpX + 1 + n);
        sort(tmpY + 1, tmpY + 1 + n);
        sz1 = unique(tmpX + 1, tmpX + 1 + n) - tmpX - 1;
        sz2 = unique(tmpY + 1, tmpY + 1 + n) - tmpY - 1;
 
        for(int i = 1; i <= n; i++) {
            P[i].x = lower_bound(tmpX + 1, tmpX + 1 + sz1, P[i].x) - tmpX;
            P[i].y = lower_bound(tmpY + 1, tmpY + 1 + sz2, P[i].y) - tmpY;
        }
 
        int ans = 0;
        for(int u = 1; u <= n; u++) {
            for(int i = 1; i <= sz1; i++) X[i].clear();
            for(int i = 1; i <= sz2; i++) Y[i].clear();
            for(int i = 1; i <= n; i++) {
                X[P[i].x].insert(Data(i, P[i].y));
                Y[P[i].y].insert(Data(i, P[i].x));
            }
            int t = solve(u);
            ans = max(ans, t);
        }
        printf("%d\n", ans);
    }
    return 0;
}
#include<map>
#include<set>
#include<cmath>
#include<ctime>
#include<stack>
#include<queue>
#include<cstdio>
#include<cctype>
#include<bitset>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#define fuck(x) cout<<"["<<x<<"]"
#define FIN freopen("input.txt","r",stdin)
#define FOUT freopen("output.txt","w+",stdout)
//#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef long long LL;
 
const int MX = 1e3 + 5;
struct Node {
    int x, y, z;
    Node() {}
    Node(int _x, int _y, int _z) {
        x = _x; y = _y; z = _z;
    }
    bool operator<(const Node &P) const {
        if(x == P.x) {
            if(y == P.y) return z < P.z;
            return y < P.y;
        }
        return x < P.x;
    }
};
 
LL A, B, C;
multiset<Node>S;
bool check(int x, int y, int z) {
    if(x < 1 || x > A || y < 1 || y > B || z < 1 || z > C) return false;
    if(S.count(Node(x, y, z))) return false;
    return true;
}
int f(int x) {
    if(x == 0) return -2;
    if(x == 1) return 0;
    return 2;
}
 
int main() {
    int n; //FIN;
    while(~scanf("%lld%lld%lld%d", &A, &B, &C, &n)) {
        LL ans = 2 * A * B + 2 * A * C + 2 * B * C;
        S.clear();
 
        for(int i = 1; i <= n; i++) {
            int x, y, z;
            scanf("%d%d%d", &x, &y, &z);
            x++; y++; z++;
 
            ans += f(check(x - 1, y, z) + check(x + 1, y, z));
            ans += f(check(x, y - 1, z) + check(x, y + 1, z));
            ans += f(check(x, y, z - 1) + check(x, y, z + 1));
            S.insert(Node(x, y, z));
        }
        printf("%lld\n", ans);
    }
    return 0;
}

相關推薦

CSU 1684: Disastrous Downtime 1685: Entertainment Box 1692: Vector Field 1697: Surface Area of Cubes

#include<iostream> #include<functional> #include<algorithm> #include<cstring> #include<string> #include<c

Disastrous Downtime(一段)

題意:有 n 條指令,在同一時間內,一臺機器只能同時執行 k 條指令,而且 每條指令需要執行 1000ms=1s 的時間才能執行完畢,            問總共最少需要多少臺機器才能使每條指令都

CSU 1413: Area of a Fractal(分形圖形面積)

n  = 2 : F+F-F-FF+FF+F+F-F-FF+FF-F+F-F-FF+FF-F+F-F-FF+FFF+F-F-FF+FF+F+F-F-FF+FFF+F-F-FF+FF+F+F-F-FF+FF+F+F-F-FF+FF-F+F-F-FF+FF-F+F-F-FF+FFF+F-F-FF+FF+F+F-F

盒子陰影——Box-shadow

strong 半徑 類型 web 設定 chrome瀏覽器 瀏覽器 可選 tro box-shadow:陰影水平偏移量 陰影垂直偏移量 陰影模糊半徑 陰影擴展半徑 陰影顏色 box-shadow屬性的參數設置取值: 陰影類型:此參數可選。如不設值,默認投影方式是外陰影;如

add month/year to drop-down list box

field zed etime dto bnu 格式 lis num while add month/year to drop-down list box drop-down list添加日期 /* Add Month/Year to Card Expriry Month

Drop down box selection(Select)

imp bdr mon size true logs selenium class port http://www.cnblogs.com/yoyoketang/p/6128636.html from selenium.webdriver.support.select i

CSS3伸縮盒Flexible Box

git 情況 ear 更多 group android 計算 zab 基礎 這是一種全新的布局,在移動端非常實用,IE對此布局的相關的兼容不是很好,Firefox、Chrome、Safrai等需要加瀏覽器前綴。 先說說這種布局的特點: 1)移動端由於屏幕寬度都不一樣,在布局

CSU - 1556 Jerry&#39;s trouble(高速冪取模)

click ostream algo printf 高速 ron main 取模 bit 【題目鏈接】:click here 【題目大意】:計算x1^m+x2^m+..xn^m(1<=x1<=n)( 1 <= n < 1 000 000, 1 &

css3 box-shadow

rgba 圓角 img www 生成 oar black mic opera <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf

CSS3 box-reflect 屬性

direction 百分比 放射性 投影 語法:box-reflect:包括3個值。1. direction 定義方向,取值包括 above 、 below 、 left 、 right。above:指定倒影在對象的上邊below:指定倒影在對象的下邊left:指定倒影在對象的左邊right:

css3彈性盒display:box和flex的完整好教程

guid flexbox iba span style lan guide isp ref 1、flexbox-CSS3彈性盒模型flexbox布局完整版教程(轉)2、CSS3盒模型display:box詳解(轉) css3彈性盒display:box和flex的完整好教

(樹形dp+LCA倍增法)CSU 1915 - John and his farm

const http 題解 def iostream clu algo farm john 題意: 有一個棵樹,現在讓你找兩個點連接起來,這樣必然成為一個環,現在要求這些環長度的期望,也就是平均值。 分析: 第一次做LCA題,做多校的時候,瞎幾把找了模板敲,敲了個八九

探索盒子陰影box-shadow

box-shadow 盒子陰影 html css盒子陰影之探索盒子陰影:box-shadow作用;在盒子不同的方位添加你想要的陰影效果。box-shadow有六個參數值,下面一一舉例說明 語法:Box-shadow: offset-x | offset-y | blur | sperd | color| p

css box模型content-box 和border-box

nbsp 嘗試 自己 沖突 沒有 del cnblogs htm before 因為剛開始學,用了bootstrap的框架,有些東西可以用現成的,不用自己布局,後來發現如果要調比較精細的布局還是得自己寫css,然後就開始一點點去掉bootstrap的布局,不然在原來

FZU Problem 1692 Key problem(循環矩陣)

com tracking rst ext back 1.0 gen img __int64 循環矩陣,這裏有解說:http://wenku.baidu.com/link?url=zcJ-sxrj0QDqzz8xCnHTnB7gxjoNRyOZzS4_4ZA22c8Bs9

使用 CSS3 的 box-sizing 屬性設置元素大小包含 border 與 padding

lang htm tle 內部 p s itl css3 div char 默認情況下,內部元素(如:input)的寬度或高度,是不會包含元素的邊框和內邊距的,這是就需要使用 box-sizing 屬性設置該元素。 box-sizing 是 CSS3 的屬性,可以設置以

CSS3 彈性盒子(Flex Box)

子元素 它的 新的 oss css size 行為 目的 模式 彈性盒子是 CSS3 的一種新的布局模式。CSS3 彈性盒( Flexible Box 或 flexbox),是一種當頁面需要適應不同的屏幕大小以及設備類型時確保元素擁有恰當的行為的布局方式。引入彈性盒布局模型

csu-acm 1503: 點到圓弧的距離

tdi per 註釋 -s 最短距離 txt href amp code 1503: 點到圓弧的距離 分析: 先判斷點和圓心的連線是否在圓弧範圍內,如果在,最短距離即到圓心的距離減去半徑的絕對值;反之,為到端點的最短距離。 具體看註釋 #include <

CSS3 ---flex box

表現 占滿 三種 content inline 分享 標記 cti color   flexbox布局是CSS3中新增的布局屬性,但任何樣式屬性起作用的前提則是,它必須有對應的html結構。我們首先在html 文件中定義相應的結構,才能使用布局樣式。我們簡單地寫一個ul l

(線段樹區間賦值)CSU 1942 - Sort String

== print 字母 can right += 小寫 csu 一模一樣 題意: 一個串(串中只有26個小寫字母),選一個區間進行排序,進行100000次,輸出最後的串。 分析: 比賽的時候很懵逼,感覺這題跟之前的額大崩龍有點像,但是沒多想,也怪自己太菜了。