第一行包含兩個整數r和c(1<=r,c<=25)。
接下來r行每行c個字元描述被偷之後的形狀,字元分為以下三種:
(1)『.』表示空;
(2)字元『|』(ascii為124)、『-』、『+』、『1』、『2』、『3』、『4』描述管道的形狀;
(3)『m』和『z』表示城市,兩個都是只出現一次。
輸入保證石油的流向是唯一的,只有乙個管道跟m和z相連,除此此外,保證沒有多餘的管道,也就是說所有的管道在加進被偷的管道後一定都會被用上。
輸入保證有解而且是唯一的。
輸出被偷走的管道的行號和列號以及管道的型別。
輸入1:3 7.......
.m-.-z.
.......
輸入2:
3 5..1-m
1-+..
z.23.
輸入3:
6 10
z.1----4..
|.|....|..
|..14..m..
2-+++4....
..2323....
..........
輸出1:簽到題,不過考試時候讓我簽到得有點久,導致後面題目來不及做。2 4 -
輸出2:
2 4 4
輸出3:
3 3 |
模擬暴力,不多說。
我覺得我的**又長又臭
#include#includeusing
namespace
std;
intn,m;
int next[4][2]=,,,};
char tu[25][25
];void find_wrong(int x,int
y)void work(int x,int y,int di)
if(di==2)
if(di==3)
if(di==4
)
}int
main()
if(i==4
)
}return0;
}
第一行包含兩個整數n(12<=n<=10000)和k(1<=k<=1000)。
接下來k行,每行包含三個整數x(1<=x<=n^2)、r和c(1<=r,c<=n),描述需要移動的數以及目標位置。
alice必須按照輸入順序依次移動。
輸出k行,每行輸出乙個整數,表示操作次數。
輸入1:4 16 3 4
輸入2:
4 26 3 4
6 2 2
輸入3:
5 31 2 2
2 2 2
12 5 5
輸出1:3輸出2:35
輸出3:25
3
考試時候把題目看錯了,以為是要將所有目標塊同時歸位,沒有想到這麼簡單。
暴力,把每次的操作記錄下來,每詢問乙個數時,先將它把之前與它有關的操作做一遍,然後在處理。
後面改的時候由於乙個地方沒理解清楚,所以**略長,不要在意。
#include#includeusing
namespace
std;
intn,k,sx,sy,nowx,nowy,ans,sl;
int zx[1010],r[1010],c[1010
];struct
thmxy[
2020
];void
move()
if(sy==xy[i].dir && xy[i].kg==-1
)
i++;
}}int
main()
if(sy>c[i])
if(sxif(sx>r[i])
printf(
"%d\n
",ans);
}return0;
}
學生都很喜歡灌水,第一天只有alice給她的每個朋友灌了一次水,從第二天開始,所有學生(包括alice)將會有規律地去灌水:
•如果前一天被灌了奇數次的水,他們將會給每個朋友灌一次水;
•如果前一天被灌了偶數次的水,他們將會給每個朋友灌兩次水。
學生編號為1到n,alice為1號,學生之間的朋友關係會給出。
計算h天後一共灌了幾次水。
輸入一行包含兩個整數n和h(1<=n<=20,1<=h<=10^9),表示學生數和天數。
接下來n行,每行包含n個『0』或『1』,(a,b)處的字元表示a和b的關係,『1』表示是朋友關係,『0』表示不是。注意自己和自己不是朋友關係,輸入保證該矩陣是對稱的。
輸出h天後一共灌水的數量。
輸入1:4 10110
1001
1001
0110
輸入2:
4 20110
1001
1001
0110
輸入3:
5 301000
10110
01000
01001
00010
輸出1:2輸出2:
14輸出3:
26
【樣例解釋】
樣例2中,第一天alice灌了2次水,第二天學生1和學生4給學生2和學生3都灌了2次水,而學生2和學生3給學生1和學生4各灌水1次,2天一共灌了12次水。
【資料範圍】
50%的資料 h<=1000。
考試時只瞄了一下題,來不及思考,所以沒有思路。
看一下資料範圍,不難發現此題每個人的奇偶情況可以用二進位制來壓縮狀態,然後找迴圈節來巧妙解決。
不過我改了乙個晚上,因為xhs的**欠砍,我拿他的**對著除錯,結果狀態一直對不上,結果最後他告訴我他01所表示的奇偶和我是相反的,臭逼!然後我改了乙個字母就a了。(不過我的**比他短,嘿嘿)
#include#include#include
#define ll long long
using
namespace
std;
ll n,h,jt,k,ans;
ll keep[
2000020],book[2000020
];char ch[21][21
];unsigned sl[
21];
vector
rel[21
];void
work(ll x)
ll interesting(ll i,ll jt)
intmain()
printf(
"%lld
",ans);
return0;
}
給出每天的植物的座標,計算每天長出多少新花。
第一行包含乙個整數n(1<=n<=100000),表示天數。
接下來n行,每行兩個整數l和r(1<=l<=r<=100000),表示植物的左右邊界。
輸出每天長出新植物後增加新花的數量。
輸入1:41 4
3 71 6
2 6輸入2:
51 3
3 53 9
2 43 8
輸出1:01線段樹,很明顯,but 考試時卻沒有時間打,唉。12輸出2:00
032
#include#include#define maxn 100010
using
namespace
std;
intn,ans,max;
inttj[maxn];
intl,r,x[maxn],y[maxn];
struct
tree
tree[
8*maxn];
void build(int l,int r,int
k)void pushdown(int
k)int find(int l,int r,int k,int
g)void add(int l,int r,int
k) mid=(r+l)/2
;
if(l<=mid)
add(l,mid,k*2
);
if(midadd(mid+1,r,k*2+1
); tree[k].zhi=tree[k*2].zhi+tree[k*2+1
].zhi;
}int
main()
return0;
}
紀中集訓 Day 3
這幾天一直堅持寫blog 加油吧!早上醒來,說了 我要ak 其實只是蒟蒻的妄想罷了qaq 然後為了不立flag,改成了我要rank 1 然後依舊是有一題不會做qaq 好弱,爭取有一次能全會做吧qaq 然後就230了 rank1 第3題果真是爆搜不過就算寫也難寫啦啦啦 a組的題又是喪病,t1數學題什麼...
紀中集訓 Day7 Day8
t1 大水題呀!t2 還好 又少判斷了,emmmm t3 t4 放棄掙扎 權勢二進位制 題目 乙個十進位制整數被叫做權勢二進位制,當他的十進位制表示的時候只由0或1組成。例如0,1,101,110011都是權勢二進位制而2,12,900不是。當給定乙個n nn的時候,計算一下最少要多少個權勢二進位制...
8 18 紀中集訓 Day18
第一行乙個整數n,表示除根節點之外的其他節點的數量。接下來n行,第i 1行有三個整數fi ei wi,分別表示i號節點的父節點 i號節點上封印石的能量需求 連線節點i與fi的邊最多能傳遞多少能量。最多能滿足多少顆封印石的能量需求。4 0 3 2 0 100 100 1 1 1 2 75 80 2 對...